黑盒测试 发表于 2017-6-15 19:18:32

用python打印出来1000内那些数字等于它的约数之和?

用python打印出来1000内那些数字等于它的约数之和?比如6=1+2+3


码农Damon 发表于 2017-6-16 08:21:22

围观等答案

菜鸟@大虾 发表于 2017-6-16 09:43:04

这是算法问题兄弟,你谷歌下吧

清晨一缕阳光 发表于 2017-6-16 09:45:10

这个在网上一搜一大堆的。

libingyu135 发表于 2017-6-16 10:02:23

http://www.bubuko.com/infodetail-1437204.html网上还真是多答案

梦想家 发表于 2017-6-16 11:05:06

这算法我都快不记得约数是啥了

黑盒测试 发表于 2017-6-17 10:21:18

libingyu135 发表于 2017-6-16 10:02
http://www.bubuko.com/infodetail-1437204.html网上还真是多答案

谢谢

黑盒测试 发表于 2017-6-17 10:23:09

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
页: [1]
查看完整版本: 用python打印出来1000内那些数字等于它的约数之和?