题解:有n个灯,一个人来回走n次,走第 i 次的时候可以按能整除 i 的灯的按钮,判断走完n次后第n个灯是否是开着的,返回途中不按开关。找到规律,看n是否是完全开方数,对n开方判断是否是整数,即强制转换后是否等于原先的数。
#include <stdio.h>
#include <math.h>
int main() {
double t;
while (scanf("%lf", &t) && t) {
double a = sqrt(t);
if (int(a) == a)
printf("yes\n");
else
printf("no\n");
}
return 0;
}