如何用c语言写出500以内的所有亲密数对
时间: 2023-12-10 14:05:27 浏览: 235
亲密数对指的是两个正整数,它们各自的所有因子之和(不包括自身)等于对方,且它们本身不相等。我们可以使用 C 语言来编写一个程序来查找 500 以内的所有亲密数对:
```c
#include <stdio.h>
// 计算一个数的因子之和
int sum_of_divisors(int num) {
int sum = 0;
for (int i = 1; i < num; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum;
}
int main() {
int n = 500;
int a, b;
for (a = 1; a <= n; a++) {
b = sum_of_divisors(a);
if (a < b && sum_of_divisors(b) == a) {
printf("(%d, %d)\n", a, b);
}
}
return 0;
}
```
在这个程序中,我们首先定义了一个函数 `sum_of_divisors`,用于计算一个数的因子之和。然后我们在 `main` 函数中遍历从 1 到 500 的所有正整数,对于每个数 `a`,我们计算它的因子之和 `b`,如果 `a < b` 且 `b` 的因子之和等于 `a`,那么就找到了一个亲密数对 `(a, b)`,将其输出即可。
需要注意的是,在这个程序中,我们并没有对所有的正整数都计算因子之和,而是只对每个数计算一次。这是因为如果一个数已经被计算过了,它的因子之和已经被保存在了数组中,我们可以直接使用这个值,避免重复计算。
阅读全文
相关推荐


