python代码编写一个求完数的自定义函数,从键盘中一次输入数值区间的范围,调用自定义函数求该范围内的完数。(完数是指一个数恰好等于它的所有真因子(即除了自身以外的约数)之和)(例如输入100和200,求100 到 200 之间的完数)。
时间: 2024-10-13 10:11:47 浏览: 17
Python代码可以这样编写,首先定义一个计算完数的函数`is_perfect_number`,然后通过用户输入获取范围,并遍历这个区间,找出所有的完数:
```python
def is_perfect_number(n):
"""
检查一个数是否是完美数
"""
sum_of_divisors = 1
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
sum_of_divisors += i
if i != n // i: # 如果i不是n的平方根,还需要加上另一个因子
sum_of_divisors += n // i
return sum_of_divisors == n
def find_perfect_numbers(start, end):
"""
找出指定范围内的完美数
"""
perfect_numbers = []
for num in range(start, end+1):
if is_perfect_number(num):
perfect_numbers.append(num)
return perfect_numbers
# 获取用户输入的范围
start = int(input("请输入起始数值:"))
end = int(input("请输入结束数值(包含该值):"))
perfect_numbers_in_range = find_perfect_numbers(start, end)
print(f"在 {start} 到 {end} 范围内,完美的数有:{perfect_numbers_in_range}")
阅读全文