100个人,100盏灯,全部熄灭,第一人过去按所有灯的开关,第二个人会每隔一盏灯按开关,第三个人每隔2盏灯按开关,以此类推, 第100人隔99盏灯按开关。
问:100个人都走完,剩多少盏灯亮着?

  总结来说,所有人都是按他自己编号的倍数的灯(编号都是从1开始),也就是说:1 号人按所有灯,2 号人按 2 4 6 8 10 号灯,三号人按 3 6 9 号灯,依次类推。
  我们可以发现:一盏灯如果被按了奇数次,最后就是亮着的;被按了偶数次,最后就是灭的。而一盏灯被按的次数,就是它编号的约数的个数,比如 1 号灯约数就一个 1 所以亮,2 号灯约数是 1 和 2所以灭,3 号灯约数是 1 和 3 所以灭,4 号灯约数是 1、2、4 所以亮,16号灯约数是 1、2、4、8、16 所以亮。。以此类推。
  通过归纳总结,可以看出,只有完全平方数的约数个数为奇数,所以只有完全平方数编号的灯,最后是亮着的,100盏灯的话就是 1、4、9、16、25、36、49、64、81、100(也就是1 到 10 这 10 个数的平方),共十盏灯。

证明:正整数n为完全平方数的充分必要条件是n的正约数个数是奇数个

  上边是通过归纳总结看出来的结论,但其实是可以证明的,分为充分性和必要性两方面证明:

充分性(完全平方数正约束个数一定是奇数)

  1. n = 1 时,正约数 1 个,是奇数;
  2. n > 1 时,n2 的约数: 1 … n … n2,且 1 和 n 之间每多一个约数,例如m,那么 n 到 n2 之间就会多一个约数 n2/m,也就是说除了 1、n、n2自身 这三个约数,其他的约数是成对出现的,也就是说约数的总个数为 3 + 偶数,结果必为奇数。

必要性(正约数个数为奇数的正整数一定为完全平方数)

  1. 1 的约数是 1,只有一个,且 1 是完全平方数
  2. 如果一个数的公约数是 1 和他本身,那它就是质数,肯定不是完全平方数
  3. 如果一个数 m 的公约数除 1 和他本身,还有其他的公约数,我们设其中一个数为 p,那么必定存在一个约数 m/p,也就是说公约数是成对出现的,除非这两个数相等,也就是同一个数,否则公约数的个数就肯定是偶数,所以m 有完全平方根时,公约数个数是奇数;m 没有完全平方根时,公约数个数是偶数。

  所以正约数个数为奇数的,一定是完全平方数。

100个人,100盏灯,全部熄灭,第一人过去按所有灯的开关,第二个人会每隔一盏灯按开关,第三个人每隔2盏灯按开关,以此类推,第100人隔99盏灯按开关,100个人都走完,剩多少盏灯亮着?相关推荐

  1. C语言编程练习 3.写一个函数,如果它首次被调用,则返回字母A,第二次被调用,则返回字母B,第三次调用,则返回字母C,以此类推。(提示:使用一个static数据类型)

    题目完整描述: 写一个函数,如果它首次被调用,则返回字母A,第二次被调用,则返回字母B,第三次调用,则返回字母C,以此类推.(提示:使用一个static数据类型) 函数原型为:char call_ti ...

  2. java 数组最后一个_面试官: 100万个成员的数组取第一个和最后一个有性能差距吗?...

    本文首发于微信公众号「程序员面试官」 数组几乎可以是所有软件工程师最常用到的数据结构,正是因为如此,很多开发者对其不够重视. 而面试中经常有这样一类问题: 「100万个成员的数组取第一个和最后一个有性 ...

  3. 缩招,招生100人!北京大学软微学院软件工程第二学位开始招生!

    之前小编报道过,今年第二学士学位要扩招的消息,并且拿了去年北京大学软微软件工程来举例: 北京大学软件工程第二学位!全日制国家支持,不读研也有出路! 当时小编也说过: 第二学位并不像双学位,第二学位是国 ...

  4. Python3 入门100例,从入门到精通第一步

    Python3 入门100例,从入门到精通第一步 原题地址:http://www.runoob.com/python/python-100-examples.html 来源于github开源项目

  5. esp8266的SDK开发pwm有感:解决LED灯不能熄灭,微微亮问题。

    引言 为什么要写这个,是因为自己在使用esp8266的pwm调节灯光亮度时遇到一个问题.最后终于解决. 所用器材和平台: 1.一个nodemcu开发板 2.一个LED灯(为了接线方便,我把usb小LE ...

  6. 一条双字长的取数指令(LDA)存于存储器的100和101单元,其中第一个字为操作码和寻址特征M,第二个字为形式地址。

    一条双字长的取数指令(LDA)存于存储器的100和101单元,其中第一个字为操作码和寻址特征M,第二个字为形式地址. 假设PC当前值为100,变址寄存器×R的内容为100,基址寄存器的内容为200,存 ...

  7. 给你一个字符串 s ,每 两个 连续竖线 ‘|‘ 为 一对 。换言之,第一个和第二个 ‘|‘ 为一对,第三个和第四个 ‘|‘ 为一对,以此类推。

    题目描述: 给你一个字符串 s ,每 两个 连续竖线 '|' 为 一对 .换言之,第一个和第二个 '|' 为一对,第三个和第四个 '|' 为一对,以此类推. 请你返回 不在 竖线对之间,s 中 '*' ...

  8. php删除一张表数据的时候 把另一张表的数据也删除,剔除第一张表的数据时,修改第二张表的相关字段的数值...

    删除第一张表的数据时,修改第二张表的相关字段的数值 表xf xf_id vip total 1 1 10 2 1 100 3 2 80 4 3 50 表vip vip jifen 1 1000 2 5 ...

  9. 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比

    5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第二,我第三: B选手说:我第二,E第四: C选手说:我第一,D第二: D选手说:C最后,我第三: E选手说:我第四,A第一: 比 ...

最新文章

  1. fullcaledar日历插件
  2. 大连理工大学 计算机复试分数线,2020大连理工大学考研复试分数线已公布
  3. 简单工厂模式(Simple Factory)
  4. Could not delete .........May be locked by another process.
  5. 其他技术(Path)
  6. 判决素数个数(信息学奥赛一本通-T1409)
  7. 【pytest】Hook 方法之 pytest_collection_modifyitems:修改测试用例执行顺序
  8. 手机程序开发和测试关注点整理
  9. java时间日期类(Date、DateFormat、Calendar)学习
  10. gdb学习汇编(三)
  11. 汉化:Termius for Mac(SSH客户端)
  12. 以前积攒的一个用Java程序生成验证码的代码
  13. lua collectgarbage
  14. 思科模拟器Cisco Packet Tracer的下载与安装
  15. uniapp h5在线预览word文档ppt等
  16. grpc-go 连接backoff协议
  17. 融合知识图谱和用户行为信息的个性化推荐算法研究
  18. 2021年浙江工商大学新生赛题解
  19. PC上网页端屏蔽知乎上的视频
  20. 使用遗传算法和模拟退火改进的K均值聚类

热门文章

  1. 计算机清览云题库,【汇总】计算机等级考试题库,二级Web试题
  2. 60级怀旧服奥妮克希亚巢穴猎人怎么玩?
  3. java 学习~多线程通信 使用共享变量 例子和解释
  4. com.fasterxml.jackson.databind.exc.MismatchedInputException
  5. Mac只能办公不能玩游戏?这十款超好玩的游戏推荐给你!
  6. 西游释厄传2游戏技巧
  7. Python文件字节读写
  8. 漫谈运维:半神半仙亦民工(1)
  9. 关于百度地图最大层级聚合点鼠标覆盖弹出对话框需求实现
  10. 护眼灯色温多少合适?教你读懂护眼灯参数及如何选择