题目大意:行走次数是灯的序号的因数时,改变灯的状态。只考虑最后一个灯。
解题思路:一个数的的平方根是整数,则其因数为奇数个;一个数的平方根不是整数,则其因数为偶数个。所以只要判断平方根是否为整数即可。
#include<iostream>
#include<cstdio>
#include<math.h>
using namespace std;
int main() {
long n , root;
while(cin >> n && n) {
root = sqrt(n);
if( root*root == n )
cout << "yes" <<endl;
else cout << "no" <<endl;
}
return 0;
}