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
1 5
Sample Output
1 0
分析:
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.
所有灯刚开始是都是熄灭的,依次从1到n标号,第一次把所有是一的倍数的灯变为相反的状态,第二次把所有是二的倍数的灯变为相反的状态,第三次把所有是三的倍数的灯变为相反的状态,以此类推,问第n个灯的明暗情况?
思路:第n次之后,第n个灯的状态不会再改变!!!
AC代码如下:
#include "iostream" using namespace std; int main(int argc, char* argv[]) { int n,i,count; while(cin>>n) { count=0; for (i=1;i<=n;i++) { if (n%i==0) { count++; } } if (count%2==0) { cout<<"0\n"; } else { cout<<"1\n"; } } return 0; }