编写一个求完数的自定义函数,从键盘中一次输入数值区间的范围,调用自定义函数求该范围内的完数。(完数是指一个数恰好等于它的所有真因子(即除了自身以外的约数)之和)(例如输入100和200,求100 到 200 之间的完数)
时间: 2024-10-13 14:12:30 浏览: 38
在Python中,我们可以编写一个名为`findPerfectNumbers`的函数来实现这个功能。首先,我们需要定义一个辅助函数`isPerfectNumber`用于检查一个数是否是完数。然后,我们遍历指定的区间,并对每个数进行判断。
这是一个简单的示例:
```python
def isPerfectNumber(n):
if n <= 1:
return False
sum_factors = 1
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
factor = i
# 如果i不是n的平方根,还有一个因子是n/i
if i != n // i:
factor *= n // i
sum_factors += factor
# 检查sum_factors是否等于n,如果是则n是完数
return sum_factors == n
def findPerfectNumbers(start, end):
perfect_numbers = []
for num in range(start, end+1):
if isPerfectNumber(num):
perfect_numbers.append(num)
return perfect_numbers
# 获取用户输入的区间范围
start = int(input("请输入起始值:"))
end = int(input("请输入结束值:"))
# 调用函数并打印结果
perfects_in_range = findPerfectNumbers(start, end)
print(f"{start}到{end}之间,完数有:{perfects_in_range}")
```
运行此程序,会提示用户输入数值区间,然后计算并输出该范围内的完数列表。
阅读全文