题目:找出1000以内的所有完数。
#一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如 6=1+2+3。
1 # -*- coding:utf-8 -*-
2
3 for i in range(2, 1000):
4 l1 = []
5 for j in range(1,i):
6 if i % j == 0:
7 l1.append(j)
8 num = sum(l1)
9 if num == i:
10 print "%d ="%i,
11 for i in range(len(l1)):
12 if i == len(l1) - 1:
13 print l1[i]
14 else:
15 print "%d +"%l1[i],
运行结果为:
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248