python输入一个整数n 如果一个数恰好等于它的因子之和,则这个数称为完数,编程求n以内的所有完数
时间: 2023-11-25 20:05:56 浏览: 87
python 编程找出1000以内的所有完数 (示例)
5星 · 资源好评率100%
下面是一个求n以内所有完数的Python代码:
```python
def find_perfect_numbers(n):
perfect_numbers = []
for num in range(1, n+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
n = int(input("请输入一个整数n:"))
perfect_numbers = find_perfect_numbers(n)
print("在{}以内的完数有:{}".format(n, perfect_numbers))
```
这个程序定义了一个`find_perfect_numbers`函数,它接受一个整数`n`作为参数,返回一个列表,包含所有小于等于`n`的完数。函数的实现思路是,对于每个数`num`,枚举出小于`num`的所有正整数,如果这个正整数是`num`的因子,则把它加入一个列表`factors`中。最后,如果`factors`中所有元素的和等于`num`,则`num`是一个完数,把它加入结果列表中。
在程序的末尾,我们调用`find_perfect_numbers`函数,并将结果打印输出。
阅读全文