求出10000以内所有的完全数-python

题目:

如何用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)

 


posted @ 2017-09-12 11:26  女林  阅读(6442)  评论(0编辑  收藏  举报