用python打印出来1000内那些数字等于它的约数之和?
用python打印出来1000内那些数字等于它的约数之和?比如6=1+2+3围观等答案 这是算法问题兄弟,你谷歌下吧 这个在网上一搜一大堆的。 http://www.bubuko.com/infodetail-1437204.html网上还真是多答案 这算法我都快不记得约数是啥了 libingyu135 发表于 2017-6-16 10:02
http://www.bubuko.com/infodetail-1437204.html网上还真是多答案
谢谢 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]