这个题求经过n次开关后,最后第n个灯是亮还是灭。本来想把求n的因数,后来发现,如果n不是开方数,因数为偶数,若是开方数,则因数为奇数,所以这题只需判断n是否为开方数即可。注意n的类型为unsigned
程序代码:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
unsigned int n, middle;
while(cin>>n){
if(!n) break;
middle = (int)sqrt(n);
if(middle * middle == n)
cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
return 0;
}