输入一个正整数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))