一个数如果恰好等于它的因子之和,这个数就称为“完数” 。
例如, 6 的因子为 1、2、3,而 6=1+2+3,因此 6 是完数。
编程,找出 1000 之内的所有完数,并输出该完数及对应的因子。
# -*- coding:utf-8 -*-
from functools import reduce
def sum(a,b):
return a+b
for i in range(2,1001):
l = [1]
for j in range(2,int(i/2+1)):
if i%j==0:
l.append(j)
if i == reduce(sum,l):
print(i)
print(l)