题目:
如何用python去求出下一个(大于28的)完全数?
(求出10000以内所有的完全数)
分析:
如果一个数恰好等于它的因子之和,则称该数为"完全数".各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数,又称完美书或完备数.
1.第一个完全数是6,它有约数1,2,3,6,除去它本身6外,其余3个数相加为:1+2+3=6
2.第二个完全数是28,它有约数1,2,4,7,14,28,除去它本身28外,其余5个数相加为:1+2+4+7+14=28
题解:
def numbers(number):
sum=0
d=list()
for i in range(1,number):#range(1,6)
if number%i==0:
d.append(i)
else:
continue
for i in d:
sum+=i
if sum==number:
print(number)
for i in range(6,10001):
numbers(i)