输入一个正整数N,判断是不是完数,分行输出小于N的所有完数,最后一行输出完数的个数python

输入一个正整数N,判断是不是完数,分行输出小于N的所有完数,最后一行输出完数的个数python

希望采纳!第一!

def is_perfect_number(num):
    factors = []
    for i in range(1, num):
        if num % i == 0:
            factors.append(i)
    return sum(factors) == num

n = int(input("请输入一个正整数N: "))

perfect_numbers = []
for i in range(1, n):
    if is_perfect_number(i):
        perfect_numbers.append(i)

print("小于N的完数有:")
for num in perfect_numbers:
    print(num)

print("完数的个数为:", len(perfect_numbers))