题目大意:
有一串灯,刚开始都是灭的,进行第i次操作时i的倍数的灯转换状态,给出一个数n,判断无数次后第n个灯是亮还是灭
大致思路:
实际上无数次就是到n即可,hint已经给出n以后的操作对n最终状态不产生影响。
模拟操作实际只需看n是否为i的倍数即可。
c:
#include<stdio.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int lamp=1; //第一次全部都亮
for(int i=2;i<=n;i++)
if(n%i==0)
lamp=-lamp; //转换状态。相反数最方便
printf("%d\n",lamp==1?1:0);
}
return 0;
}