输出小于输入数的所有的完数,

定义一个数除了自身所有因数的和等于他本身为完数。首先判断一个数是不是完数,然后输入任意一个数,输出小于这个数的所有完数

已回答,莫辜负
————————————————————————————————————————

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

def perfect_numbers(num):
    perfect_list = []
    for i in range(1, num):
        if is_perfect(i):
            perfect_list.append(i)
    return perfect_list

n = int(input("请输入一个正整数:"))
perfect_nums = perfect_numbers(n)
print("小于", n, "的所有完数是:", perfect_nums)

该回答引用GPT:
定义一个函数,判断一个数是否为完数:

def is_perfect_number(num):
    sum = 0
    for i in range(1, num):
        if num % i == 0:
            sum += i
    return sum == num

输入任意一个数,输出小于这个数的所有完数:

num = int(input('请输入一个数:'))
for i in range(1, num):
    if is_perfect_number(i):
        print(i)

如还有疑问,可留言帮助解决。

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

def get_perfect_numbers(limit):
    perfect_nums = []
    for i in range(1, limit):
        if is_perfect(i):
            perfect_nums.append(i)
    return perfect_nums
print(get_perfect_numbers(10000)) # 输出小于10000的所有完数

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^