题目大意:初始所有灯都是开着的,从1编号到n。老人从第一盏走到最后一盏,每到一盏的位置,所有编号被它整除的灯状态改变。
解题思路:暴力算有几个因数会超时,其实就是计算一个数的因数的奇偶性。所以只要判断他的开根号是否为整数就可以了。
ac代码:
#include <iostream>
#include <cmath>
using namespace std;
long long n;
int main()
{
while (scanf("%lld", &n)!=EOF && n){
if (sqrt(n) != (int)sqrt(n))
printf("no\n");
else
printf("yes\n");
}
return 0;
}