题意:
走廊有n盏灯,一个人会在走廊来回走n次。假设这是第k次走,那么位置能被k整除的灯都要改变一次状态。求最后一个灯的最终状态(开或者关)。
注意:人走的是n次来回,在回来时不会去改变灯的状态,灯的初始状态是关闭的。
思路:
其实就是求数n的因子数目的奇偶性,只有能开方的数,因子数目才是奇数,也就是这种n才能使最终状态为开。
#include<iostream>
#include<cstring>
#include<cmath>
#define eps 1e-6
using namespace std;
int main()
{
long long a,p;
while(scanf("%lld",&a)&&a){
p=pow(a,0.5);
if(p*p==a) printf("yes\n");
else printf("no\n");
}
return 0;
}