Switch Game(求因子个数)

来源:互联网 发布:js权威指南在线看 编辑:程序博客网 时间:2024/05/17 07:54

Switch Game

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 11594    Accepted Submission(s): 7041


Problem Description
There are many lamps in a line. All of them are off at first. A series of operations are carried out on these lamps. On the i-th operation, the lamps whose numbers are the multiple of i change the condition ( on to off and off to on ).
 

Input
Each test case contains only a number n ( 0< n<= 10^5) in a line.
 

Output
Output the condition of the n-th lamp after infinity operations ( 0 - off, 1 - on ).
 

Sample Input
15
 

Sample Output
10
Hint
hint
Consider the second test case:The initial condition : 0 0 0 0 0 …After the first operation : 1 1 1 1 1 …After the second operation : 1 0 1 0 1 …After the third operation : 1 0 0 0 1 …After the fourth operation : 1 0 0 1 1 …After the fifth operation : 1 0 0 1 0 …The later operations cannot change the condition of the fifth lamp any more. So the answer is 0.
 

我们举个简单的例子来看看它的规律:


比如n=16,则在第1、2、4、8、16次操作的时候,第16号灯都会被


调整,因为16是1、2、4、8、16的倍数。


共有5次,因为开始是关闭的,所以最后将是亮着的。


你可能已经发现,其实求第n盏灯最后的状态,只是求它的因子个


数的奇偶性(因为对同一盏等调整两次就恢复原状态)。

#include<stdio.h>int main(){    int n,i,c;    while(scanf("%d",&n)!=EOF)    {        c=0;        for(i=1;i<=n;i++)        {            if(n%i==0)            {                c++;            }        }        if(c%2==0)        {            printf("%d\n",0);        }        else        {           printf("%d\n",1);        }    }//这一题实际上在求n的因子个数!}


0 0