Menu Explicit/Hidden

python完数的编程代码

完数是指一个数等于它的因子之和,例如6的因子有1、2、3,而1+2+3=6,所以6是一个完数。

以下是一个用Python编写的判断一个数是否为完数的代码:

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

# 测试代码
num = int(input("请输入一个正整数:"))
if is_perfect_number(num):
    print(num, "是一个完数")
else:
    print(num, "不是一个完数")

在代码中,我们定义了一个is_perfect_number函数,该函数接受一个正整数作为参数。函数内部使用一个循环来找出该数的所有因子,并将它们存储在一个列表中。然后,我们使用sum函数计算列表中所有元素的和,并将其与原始数进行比较。如果它们相等,则返回True,表示该数是一个完数;否则返回False,表示该数不是一个完数。

最后,我们通过调用is_perfect_number函数来判断用户输入的数是否为完数,并输出相应的结果。

当然,我可以。

如果你想要找出一定范围内的所有完数,可以使用以下代码:

def find_perfect_numbers(start, end):
    perfect_numbers = []
    for num in range(start, end+1):
        factors = []
        for i in range(1, num):
            if num % i == 0:
                factors.append(i)
        if sum(factors) == num:
            perfect_numbers.append(num)
    return perfect_numbers

# 测试代码
start = int(input("请输入起始数:"))
end = int(input("请输入结束数:"))
perfect_numbers = find_perfect_numbers(start, end)
print("在范围", start, "到", end, "内的完数有:", perfect_numbers)

在这个代码中,我们定义了一个find_perfect_numbers函数,该函数接受一个起始数和一个结束数作为参数。函数内部使用两个循环,外层循环遍历从起始数到结束数的所有数,内层循环找出每个数的因子,并将它们存储在一个列表中。然后,我们使用sum函数计算列表中所有元素的和,并将其与原始数进行比较。如果它们相等,则将该数添加到perfect_numbers列表中。

最后,我们通过调用find_perfect_numbers函数来找出在指定范围内的所有完数,并将结果打印出来。

希望这个代码能够满足你的需求!如果还有其他问题,请随时提问。