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; }