原题链接:C 奇数还是偶数,这是个问题
不难发现,由于因数的性质,因数总是成对地出现,所以大部分整数的因数个数总是偶数个的,但如果当一个数的平方根是整数时,例:sqrt(9)=3,则这个数的因数是奇数个,即:1,9,3
下面给出代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
long long n;
cin>>n;
if(sqrt(n)*sqrt(n)==n) cout<<"YES";
else cout<<"NO";
return 0;
}