两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。 #include <stdio.h> int main() { int i, j; for (i = 1; i <= 3000; 【1】) { int b = 0,【2】; for (j = 1;【3】; j++) if (【4】== 0) 【5】 for (j = 1; j < b; j++) if (b % j == 0) 【6】 if (【7】) printf("(%d,%d)", i, b); } return 0; }用C语言
时间: 2024-03-24 07:40:52 浏览: 148
文档博客1.docx
可以使用以下代码实现:
```c
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 3000; i++) {
int b = 0, sum1 = 0;
for (j = 1; j < i; j++) {
if (i % j == 0) {
sum1 += j;
}
}
b = sum1;
int sum2 = 0;
for (j = 1; j < b; j++) {
if (b % j == 0) {
sum2 += j;
}
}
if (sum2 == i && i < b) {
printf("(%d,%d)\n", i, b);
}
}
return 0;
}
```
其中,第一个for循环用于枚举所有的自然数i,第二个for循环用于求出i的因子之和sum1,从而得到其对应的亲密数b。第三个for循环用于求出b的因子之和sum2,如果sum2等于i并且i小于b,则说明i和b是一对亲密数,输出即可。注意,要把每一对亲密数都输出,并且要在输出后面加上换行符,方便观察结果。
阅读全文