4371: 灯的开关
Memory Limit:256 MB
Time Limit:1 S
Judge Style:Text Compare
Creator:
Submit:36
Solved:24
Description
有 N 盏灯放在一排,从 1 到 N 依次顺序编号。有 N 个人也从 1 到 N 依次编号。一开始灯都是亮着。第1 号人将灯全部关闭,第2 号人将凡是 2 的倍数的灯打开;第3 号人将凡是 3 的倍数的灯作相反处理(该灯如为打开的,则将它关闭;如关闭的,则将它打开)。以后的人都和 3 号一样,将凡是自己编号倍数的灯作相反处理。编程实现:第 N 个人操作后,还有多少盏灯是开着的。
Input
输入一个整数 N(1≤N≤200000000),表示灯的个数。
Output
一个数,表示还有多少盏灯是开着的。
Sample Input Copy
4
Sample Output Copy
2
HINT
1 2 3 4 (灯泡编号)
* * * * 0 = 关 * = 开 (初始状态)
1 号操作 -> 0 0 0 0 切换编号为 1,2,3, 4 的灯泡的状态
2 号操作 -> 0 * 0 * 切换编号为 2,4 的灯泡的状态
3 号操作 -> 0 * * * 切换编号为 3 的灯泡的状态
4 号操作 -> 0 * * 0 切换编号为 4 的灯泡的状态
最后剩下 2,3 两盏灯是开着的。
[数据范围]
60%的数据,1≤N≤10000
80%的数据,1≤N≤1000000
100%的数据,1≤N≤200000000