51Testing软件测试论坛

标题: 用python打印出来1000内那些数字等于它的约数之和? [打印本页]

作者: 黑盒测试    时间: 2017-6-15 19:18
标题: 用python打印出来1000内那些数字等于它的约数之和?
用python打印出来1000内那些数字等于它的约数之和?比如6=1+2+3



作者: 码农Damon    时间: 2017-6-16 08:21
围观等答案
作者: 菜鸟@大虾    时间: 2017-6-16 09:43
这是算法问题  兄弟,你谷歌下吧
作者: 清晨一缕阳光    时间: 2017-6-16 09:45
这个在网上一搜一大堆的。
作者: libingyu135    时间: 2017-6-16 10:02
http://www.bubuko.com/infodetail-1437204.html  网上还真是多答案
作者: 梦想家    时间: 2017-6-16 11:05
这  算法  我都快不记得约数是啥了
作者: 黑盒测试    时间: 2017-6-17 10:21
libingyu135 发表于 2017-6-16 10:02
http://www.bubuko.com/infodetail-1437204.html  网上还真是多答案

谢谢
作者: 黑盒测试    时间: 2017-6-17 10:23
for i in range(1,1001):            #遍历1到1000所有的数字
     s = 0                          #将约数的和置0,这个赋值不能在for之外,外层for每循环一次,重置一次
    for j in range(1,i):           #遍历1到(i-1)之间所有的数字,最后一个数字是出去i本身的之前的数字,约数从这些数字中取
           if i%j == 0:               #将i和j进行取余操作,取余为0的是i的约数
               s += j                 #将约数j累加,和为s
    if s == i:                     #如果和与i相等(这个if语句要放在内层for循环之外,否则约数的和会相加的不完全,比如24这个数字,必须要约数全部相加完毕再与i比较相等)
           print(i)                   #这个i就是一个完全数,打印这个数字



6
28
496





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2