问题来源:Problem - 2053
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
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盏灯,都是关闭的,当输入一个数字时,从第一次开始,直到我们输入的数字,以次数为约数的编号的灯的状态就会改变,问最后一盏灯的状态。
思路分析:
发现一个规律,第n盏灯的状态与n的约数个数有关。当约数个数为偶数时,状态不变;当约数个数为奇数时,状态改变。
实现代码:
import java.util.Scanner;
public class Test_2053B {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
while(in.hasNextInt()) {
int n = in.nextInt();
count(n);
}
}
public static void count(int n) {
int c = 0;
for(int i=1;i<=n;i++) {
if(n % i == 0)
c++;
}
if(c % 2 == 1)
System.out.println("1");
else
System.out.println("0");
}
}