如果整数m的全部因子(包括1,不包括m本身)之和等于n;且整数n的全部因子(包括1,不包括n本身)之和等于m,则将整数m和n称为亲密数。输入2000以内的全部亲密数
时间: 2023-06-14 08:03:10 浏览: 161
下面是2000以内的所有亲密数:
(220, 284)
(1184, 1210)
(2620, 2924)
(5020, 5564)
(6232, 6368)
(10744, 10856)
(12285, 14595)
(17296, 18416)
(63020, 76084)
(66928, 66992)
(67095, 71145)
(69615, 87633)
(79750, 88730)
相关问题
python 如果整数m的全部因子(包括1,不包括m本身)之和等于n;且整数n的全部因子(包括1,不包括n本身)之和等于m,则将整数m和n称为亲密数。输入2000以内的全部亲密数
以下是2000以内的全部亲密数:
(220, 284), (1184, 1210), (2620, 2924), (5020, 5564), (6232, 6368), (10744, 10856), (12285, 14595), (17296, 18416), (63020, 76084), (66928, 66992), (67095, 71145), (69615, 87633), (79750, 88730)
如果整数m的全部因子(包括1,不包括m本身)之和等于n;且整数n的全部因子(包括1,不包括n本身)之和等于m,则将整数m和n称为亲密数。输入2000以内的全部亲密数。
以下是求解亲密数的Python代码:
```python
def get_divisors_sum(num):
"""
获取一个数的所有因子之和
"""
divisors_sum = 1 # 1 一定是所有数的因子,先加上
for i in range(2, int(num**0.5)+1):
if num % i == 0:
divisors_sum += i
if i != num // i:
divisors_sum += num // i
return divisors_sum
# 枚举所有小于2000的数
for i in range(1, 2000):
j = get_divisors_sum(i)
if i < j and get_divisors_sum(j) == i:
print(i, j)
```
输出结果为:
```
220 284
1184 1210
```
因此,2000以内的全部亲密数为220和284,以及1184和1210。
阅读全文