题目:有一串灯,编号从1到n全都是关闭的,你每次走过这串灯时,把可以整除次数i的编号的灯取相反状态,问n次后n号灯的状态。
分析:简单题。本题意思是判断n的因数的奇偶性。只有平方数的因数是奇数个,判断即可。
注意:使用long以上类型,int会wa。
#include <iostream> #include <cstdlib> #include <cstdio> #include <cmath> using namespace std; int main() { long n; while ( cin >> n && n ) { long s = (long)sqrt(n+0.0); if ( s*s == n ) cout << "yes" << endl; else cout << "no" << endl; } return 0; }