练习求正整数n之内的所有完数及其因子
时间: 2024-05-13 12:15:14 浏览: 187
首先,完数是指一个数恰好等于它的因子(除了它本身)之和的数。我们可以通过枚举每个正整数,计算它的因子和,来寻找所有的完数。
以下是一个 Python 代码示例:
```python
def find_perfect_numbers(n):
perfect_numbers = []
for i in range(1, n+1):
factors = []
for j in range(1, i):
if i % j == 0:
factors.append(j)
if sum(factors) == i:
perfect_numbers.append(i)
print("{} 是完数,它的因子是 {}".format(i, factors))
return perfect_numbers
find_perfect_numbers(10000)
```
输出结果:
```
6 是完数,它的因子是 [1, 2, 3]
28 是完数,它的因子是 [1, 2, 4, 7, 14]
496 是完数,它的因子是 [1, 2, 4, 8, 16, 31, 62, 124, 248]
8128 是完数,它的因子是 [1, 2, 4, 8, 16, 32, 64, 127, 254, 508, 1016, 2032, 4064]
```
这个函数会返回一个完数列表,以及每个完数的因子列表。在这个示例中,我们寻找了 1 到 10000 中的所有完数。
阅读全文