如果一个自然数等于它的因子(包括1,不包括它本身)之和,则称该数为“完数”。如6=1+2+3,则6是完数。编写程序,输出1000以内的完数,输出格式为“**=1+++…+*”,重点在如何按格式输出?
for i in range(1, 1000):
sum = 0
l = []
for j in range(1, i):
if i%j == 0:
sum += j;
l.append(j)
if sum == i:
print("{left}={right}".format(left=i, right="+".join([str(x) for x in l])))
def f(n):
x = [i for i in range(1, n) if n % i == 0]
return x if sum(x) == n else []
for i in range(1, 1001):
t = f(i)
if t:print(f"{i}=" + '+'.join(map(str, t)))