请用程序实现: 输入一个整数num,找出2(含) ~ num(含)中的所有完数,并输出
时间: 2024-05-15 17:18:21 浏览: 109
下面是使用Python编写的程序,可以找出2到num之间的所有完数并输出:
```python
def get_divisors(n):
divisors = [1]
for i in range(2, n):
if n % i == 0:
divisors.append(i)
return divisors
def is_perfect_num(n):
divisors = get_divisors(n)
return sum(divisors) == n
def find_perfect_nums(num):
perfect_nums = []
for i in range(2, num+1):
if is_perfect_num(i):
perfect_nums.append(i)
return perfect_nums
if __name__ == '__main__':
num = int(input('请输入一个整数num:'))
perfect_nums = find_perfect_nums(num)
if len(perfect_nums) > 0:
print(f'{num}以内的完数是:{perfect_nums}')
else:
print(f'{num}以内不存在完数')
```
程序中的`get_divisors`函数用于获取一个数的因子(除1和本身以外的因子),`is_perfect_num`函数用于判断一个数是否是完数,`find_perfect_nums`函数用于查找2到num之间的所有完数。程序运行时,会先要求输入一个整数num,然后调用`find_perfect_nums`函数找出所有的完数并输出。如果找不到完数,则输出不存在完数的提示信息。
阅读全文