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
函数来找出在指定范围内的所有完数,并将结果打印出来。
希望这个代码能够满足你的需求!如果还有其他问题,请随时提问。