python神奇题目🧚‍♀️随缘蹲蹲 快乐!

一个自然数的所有因子(不包括自身)之和等于该数,则这个数被称为完数。编写一个函数iscomplete,能够判断一个数是否为完数并返回逻辑值。此外对1000以内的数调用该函数,将所有完数构成一个列表输出

def iscomplete(a):
    sum0=0
    for i in range(a):
        sum0+=i
    if sum0==a:
        print('该数是一个完数')
        return a
list0=[]
for j in range(1,1000):
    b=iscomplete(j)
    if b:
        list0.append(b)
print(list0)
def isComplete(n):
    sum = 0
    for i in range(1, int(n / 2 + 1)):
        if n % i == 0:
            sum += i
    return n == sum

print([i for i in range(1, 1001) if isComplete(i)])