关灯
问题描述
有n盏灯(1<=n<=5000),编号为1、2、……、n,同时有n个人,依次对灯进行操作。开始时,所有的灯都是关闭状态:
第1个人的操作:将所有灯打开;
第2个人的操作:将2及2的倍数的灯,状态取反(即“开”状态变为“关”状态,“关”状态变为“开”状态);
第3个人的操作:将3及3倍数的灯状态取反;
……
第i个人的操作:将i及i倍数的灯状态取反(1<=i<=n)。
当所有操作完成之后,计算出所有开状态灯的编号之和。
例如,n=6,0表示关状态,1表示开状态:
开始:000000
第1人操作之后,变成:111111
第2人操作之后,变成:101010
第3人操作之后,变成:100011
第4人操作之后,变成:100111
第5人操作之后,变成:100101
第6人操作之后,变成:100100
则所有开状态灯的编号之和为:1+4=5。
输入
一个整数,表示n。
输出
一个整数,即操作后所有开状态的灯的编号之和。
输入
3
输出
1
信息
- ID
- 1060
- 难度
- 6
- 分类
- (无)
- 标签
- (无)
- 递交数
- 17
- 已通过
- 9
- 通过率
- 53%
- 上传者