求整数n以内(含n)的全部亲密数。 说明:如果正整数A的全部因子(包括1,不包括A本身)之和等于B;且正整数B的全部因子(包括1,不包括B本身)之和等于A,A不等于B,则将正整数A和B称为亲密数。 1不和其他数形成亲密数。 编写函数sumElem(),实现统计一个数字的因子之和(包括1,不包括A本身
时间: 2023-10-18 08:26:59 浏览: 91
)。
好的,根据您的要求,我会回答您的问题。以下是求整数n以内(含n)的全部亲密数的 Python 代码实现:
```python
def sumElem(num):
sum = 1 # 初始化为1,因为1必定是每个数的因子
for i in range(2, num):
if num % i == 0:
sum += i
return sum
def findAmicableNum(n):
res = []
for i in range(2, n+1):
sum_i = sumElem(i)
if sum_i > i and sumElem(sum_i) == i:
res.append((i, sum_i))
return res
print(findAmicableNum(10000))
```
其中,`sumElem(num)` 函数用于统计一个数字的因子之和,`findAmicableNum(n)` 函数用于找出 2 到 n 之间的全部亲密数。最后,我们调用 `findAmicableNum(10000)` 函数,输出结果如下:
```
[(220, 284), (1184, 1210), (2620, 2924), (5020, 5564), (6232, 6368)]
```
这表示在 2 到 10000 之间,共有五组亲密数,分别是 (220, 284)、(1184, 1210)、(2620, 2924)、(5020, 5564) 和 (6232, 6368)。
阅读全文