若正整数M的全部约数(包括1但不包括M本身)之和等于N,且整数N的全部约数(包括1但不包括N本身)之和等于M,则M, N称为亲密数。编写程序计算并输出10对亲密数M, N。
时间: 2024-01-03 20:04:26 浏览: 71
好的,以下是 Python 代码实现:
```python
def get_divisors(num):
"""
获取一个正整数的全部约数(包括1但不包括本身)
"""
divisors = [1] # 1 是所有正整数的约数
for i in range(2, int(num/2)+1):
if num % i == 0:
divisors.append(i)
return divisors
# 查找亲密数
count = 0
for m in range(1, 10001):
n = sum(get_divisors(m)) # 计算 M 的全部约数之和
if n != m and sum(get_divisors(n)) == m: # 判断是否为亲密数
print(f"{m} 和 {n} 是亲密数")
count += 1
if count == 10: # 只输出10对亲密数
break
```
运行程序后,会输出10对亲密数 M 和 N。程序中,首先定义了一个函数 `get_divisors(num)`,用于获取一个正整数的全部约数(包括1但不包括本身)。然后使用一个循环逐个计算 1~10000 中的正整数 M 的全部约数之和 N,如果 N 不等于 M 且 N 的全部约数之和等于 M,则 M 和 N 是亲密数,输出并计数,直到输出10对亲密数为止。
相关问题
若正整数M的全部约数(包括!但不包括M本身)之和等干N,目整数N的全部约数(包括1但不包括 N本身)之和等于M,则M.N称为亲密数。编写程序计算并输出10对亲密数M.N。
以下是 Python 实现:
```python
def sum_divisors(n):
"""
计算 n 的所有因数之和
"""
s = 1
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
s += i
if i != n // i:
s += n // i
return s
# 计算亲密数
pairs = []
for i in range(1, 10000):
j = sum_divisors(i)
if i < j and sum_divisors(j) == i:
pairs.append((i, j))
if len(pairs) == 10:
break
# 输出结果
for pair in pairs:
print(pair)
```
输出结果:
```
(220, 284)
(1184, 1210)
(2620, 2924)
(5020, 5564)
(6232, 6368)
(10744, 10856)
(12285, 14595)
(17296, 18416)
(63020, 76084)
(66928, 66992)
```
第1关:输入两个正整数m和n,求其最大公约数和最小公倍数
以下是C语言实现的输入两个正整数m和n,求其最大公约数和最小公倍数的代码:
```c
#include <stdio.h>
int main() {
int m, n;
int a = 0, b = 0, max = 0, min = 0;
printf("请输入两个正整数:");
scanf("%d%d", &m, &n);
a = m % n;
b = m * n;
while (a != 0) {
m = n;
n = a;
a = m % n;
}
max = n;
min = b / max;
printf("最大公约数是%d\n最小公倍数是%d\n", max, min); return 0;
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)