python中最简单的方式找出1000以内所有的完数(所有因子之和等于本身)
时间: 2024-04-14 07:27:15 浏览: 92
你可以使用以下方法找出1000以内的所有完数:
```python
def find_perfect_numbers(n):
perfect_numbers = []
for num in range(2, n+1):
factors = [1] # 因子列表,初始值为1
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
factors.append(i)
factors.append(num // i)
if sum(factors) == num:
perfect_numbers.append(num)
return perfect_numbers
perfect_numbers = find_perfect_numbers(1000)
print(perfect_numbers)
```
这段代码定义了一个名为`find_perfect_numbers`的函数,它接受一个参数`n`,表示要查找的范围上限。函数会遍历从2到n的所有数字,并计算每个数字的因子之和。如果因子之和等于数字本身,那么这个数字就是一个完数,将其添加到`perfect_numbers`列表中。
最后,我们调用`find_perfect_numbers`函数并将范围上限设为1000,然后打印出所有找到的完数。
注意:此代码可能不是最优解,但是它是一种简单直观的方法来找出完数。
阅读全文