# 题目:
# 一个数如果恰好等于它的因子之和,这个数就称为"完数"。
# 例如6=1+2+3.
# 编程找出1000以内的所有完数。
from functools import reduce
for i in range(2, 1001):
a_list = [1]
for j in range(2, i):
if i % j == 0:
a_list.append(j)
if i == reduce(lambda x, y: x + y, a_list):
print(i, end='\t')
print("%d = %d" %(i, a_list[0]), end='')
for n in range(1, len(a_list)):
print("+%d" % a_list[n], end='')
print()
运行结果: