题目 :求1000以内的完全数(如果一个数恰好等于它的因子之和,则称该数为“完全数”,又称完美数或完备数。例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。)
解题思路:
- for循环分别列出1000以内所有整数。
- 用每一个整数分别除以比他小的整数,若整除,则记为该整数因子,并将所有因子相加求和,求和后判断和这个整数是否相等,若相等则该整数是完全数。
- 定义一个空列表,用以储存1000以内的完全数。
解题代码:
L=[]
for i in range(1,1001):
k=0
for j in range(1,i):
if (i%j==0):
k+=j
if i==k:
L.append(i)
print(L)
打印结果:
[6, 28, 496]