Problem Description There are many lamps in a line. All of themare off at first. A series of operations are carried out on these lamps. On thei-th operation, the lamps whose numbers are the multiple of i change thecondition ( 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
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 thecondition of the fifth lamp any more. So the answer is 0.
Author LL
分析:这道题刚开始灯是灭的,当时1的时候,所有是1倍数的灯都会亮,当是2的时候所有是2倍数的灯都会灭,当是3的时候所有的灯是3的倍数的也都会发生变化,,,等输入一个数的时候,要判断该灯是亮还是灭,只需判断灯发生变化的次数是奇数还是偶数即可,当是奇数的时候的灯是亮的,当是偶数的时候灯是灭的
#include<iostream> #include<stdio.h> using namespace std; int main() { int n; while(cin>>n) { int t=0; for(int i=1;i<=n;i++) { if(n%i==0) t++; } if(t%2==0) cout<<0<<endl; else cout<<1<<endl; } return 0; }