亲密数 两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。输入某数,求某数以内(包括这个数)的全部亲密数。
时间: 2023-12-18 20:28:00 浏览: 91
亲密数.zip
以下是求某数以内全部亲密数的Python代码:
```python
def get_divisors_sum(num):
"""
获取一个数的所有因子之和
"""
divisors_sum = 0
for i in range(1, num):
if num % i == 0:
divisors_sum += i
return divisors_sum
def get_all_amicable_numbers(num):
"""
获取某数以内的全部亲密数
"""
amicable_numbers = []
for i in range(1, num+1):
divisors_sum_i = get_divisors_sum(i)
if divisors_sum_i > i and divisors_sum_i <= num:
divisors_sum_j = get_divisors_sum(divisors_sum_i)
if divisors_sum_j == i:
amicable_numbers.append((i, divisors_sum_i))
return amicable_numbers
num = int(input("请输入一个自然数:"))
print(f"{num}以内的全部亲密数为:{get_all_amicable_numbers(num)}")
```
输入一个自然数后,程序会输出该数以内的全部亲密数。其中,`get_divisors_sum()`函数用于获取一个数的所有因子之和,`get_all_amicable_numbers()`函数用于获取某数以内的全部亲密数。程序中使用了列表和元组来存储亲密数对。
阅读全文