http://acm.hdu.edu.cn/showproblem.php?pid=2053
约数的个数为奇数,输出1;偶数,输出0;
#include <iostream>
using namespace std;
int main()
{
int n;
bool flag;
while(cin>>n){
flag=0;
for(int i=1;i<=n;i++){
if(n%i==0) flag=!flag;
}
cout<<flag<<endl;
}
return 0;
}
另一种方法就是,
完全平方数有奇数个约数,所以用完全平方数编号的灯是亮着的。
#include <iostream> #include <cmath> using namespace std; int main() { int n; bool flag; double s; while(cin>>n){ flag=0; s=sqrt(n); if(fabs((int)s-s)<=1e-9) cout<<"1"<<endl; else cout<<"0"<<endl; } return 0; }