亮灯问题

本题是滴滴出行2016研发工程师笔试题

问题:2015盏灯,一开始全部熄灭,序号分别是1-2015,先把1的倍数序号的灯的开关全部按一次,然后把2的倍数的灯的开关全部按一次,然后把3的倍数的灯的开关全部按一次,以此类推,最后把2015的倍数灯的开关按一次。问最后亮着的灯有多少盏?

 

解题思路:简单思考之后发现,一个数如果有偶数个约数,则最后是暗的,如果有奇数个约数,则最后是亮的。所有的质数都有两个约数,1和自身,所以质数最后一定是暗的。对于合数,有个有意思的情况,就是除了1和本身之外,还有其他约数,那么这些约数有什么规律呢?我们可以发现,它们一般都会成对出现,比如15还可以分解成3和5,20还可以分解成2和10,或者4和5,一旦成对,最后肯定是偶数个约数,所以最后灯还是暗的。但是这里有个特殊情况,就是平方数!因为它们除了除了可以分解成成对的两个约数之外,还可以分解成自身乘以自身,这就说明它多出一个约数,比如16,除了分解成1和16,2和8,还可以分解成4和4,所以16的约数有1,2,4,8,16,可以看到它有5个约数,奇数个约数,最后灯是亮的。所以这个问题最后变成2015之内有多少个平方数。1,2,3,4...44,45的平方是2025,就比2015大了,所以最后结果是44。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值