HDUOJ 2053Switch Game

HDUOJ 2053Switch Game


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

先来说一下题目大意,就是有一排灯,初始转态为全部关闭,
之后第几次操作就把第几个灯切换状态,
第一次操作 ,标号是1的倍数,全都变成相反的状态,也就是全变成1.。
第二次操作 ,标号是2的倍数,全都变成相反的状态,2 4 6……变成了0.。。
第三次操作 ,标号是3的倍数,全都变成相反的状态,3 6 9……

题目问你 n 号台灯最后 变成了 什么状态,
例如 1号灯,最后变成了1,不管多少次操作都是1.。
例如 5号灯 最后变成了0,不管多少次操作都是0.。

当操作次数大于n 的时候 n 的状态就不会改变了,因为N不会是M(M>N)的倍数。。
那么思路很简单了,就是求n有几个约数(包括1和自身)如果有奇数个约数,变奇数次,结果也就是1;否则为0

Submit

#include<stdio.h>

int main() {
	int i, k, n;
	while (~scanf("%d", &n)) {
		k = 0;
		for (i = 1; i <= n; i++) {
			if (n % i == 0) 
				k++;
		}
		printf("%d\n", k % 2);
	}
	return 0;
}
上一篇:20191213_bind域名解析


下一篇:Pycharm2020.1 激活