设n=a*b,则a趟去的时候打开灯,b趟去的时候关上,相互抵消,当且仅当a=b时,第n个灯只开不关,即n为完全平方数。
代码如下:
1 #include<iostream> 2 #include<cmath> 3 4 using namespace std; 5 6 int main() 7 { 8 long long n, m; 9 while(cin >> n, n) 10 { 11 m=sqrt(n); 12 if (m*m == n) cout << "yes" << endl; 13 else cout << "no" << endl; 14 } 15 return 0; 16 }