Python求1~300之间所有的完数

204 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

题目概述:

一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如6的因子为1、2、3,而6=1+2+3,因此6是“完数” 。现在求出1~300之间所有的完数,并且输出它们的因子和个数。

实现代码:

count=0
for i in range(1,301):
    list1=[]
    for j in range(1,i):
        if i%j==0:
            list1.append(j)
    if sum(list1)==i:
        count+=1
        print("%d是完数,因子是"%i,list1)
print('300以内的完数总共有%d个'%count)

运行演示:

在这里插入图片描述