一开始模拟了一次,感觉时间太长。
后来发现有规律:一开始灯都是灭的,所以按得次数是奇数时灯亮,按得次数是偶数时灯灭。而且,一盏灯被按次数等于它的编号的约数。即,编号约数是奇数时灯亮,偶数时灯灭。又因为,完全平方数有奇数个约数。
AC代码如下:
#include<stdio.h>
#include<math.h>
int main ()
{
int n;
double s;
while(scanf("%d",&n) != EOF)
{
s = sqrt(n*1.0);
if(s == (int)s ) printf("1\n");
else printf("0\n");
}
return 0;
}