暴力破解,首先明白一点,结束循环的条件是i<=(n/2)+1
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
int sum=1;
for(int i=1;sum<=(n/2)+1;i++){
sum=sum*i;
if(sum==n){
printf("YES");
return 0;
}
}
printf("NO");
return 0;
}