编写函数找出指定数以内的亲密数 a的真因子和等于b,b的真因子和等于a(a,b) 亲密数对
时间: 2023-09-09 09:07:51 浏览: 62
以下是一个 Python 实现的函数,可以找出指定数以内的亲密数:
```python
def find_amicable_numbers(n):
amicable_numbers = []
for i in range(2, n+1):
a = sum(proper_divisors(i))
b = sum(proper_divisors(a))
if i == b and a != b:
amicable_numbers.append((a, b))
return amicable_numbers
def proper_divisors(n):
divisors = []
for i in range(1, n):
if n % i == 0:
divisors.append(i)
return divisors
```
这个函数使用 `proper_divisors` 函数来找出一个数的所有真因子,然后对于每个数,计算它的真因子和,如果两个数的真因子和相等且不等于它们自己,就将它们加入到亲密数列表中。注意,由于题目要求的是亲密数对,因此我们返回的是一个元组列表,每个元组包含一对亲密数。
以下是一个使用示例:
```python
>>> find_amicable_numbers(10000)
[(220, 284), (1184, 1210), (2620, 2924), (5020, 5564), (6232, 6368)]
```
这个示例中,我们找出了 10000 以内的所有亲密数对。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)