题目描述
两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。
输入
无
输出
3000以内的全部亲密数(输出格式:(A,B),不加换行,不加分隔符号)
一对亲密数只输出一次, 小的在前
样例输入
无
样例输出
(220,284)(1184,1210)(2620,2924)
#include<stdio.h>
int main()
{
int a, b, c;
for (a = 200; a < 3000; a++)
{
b = 0;
for (int i = 1; i <= a / 2; i++)
if (a % i == 0)
b += i;
c = 0;
for (int j = 1; j <= b / 2; j++)
if (b % j == 0)
c += j;
if (a == c && a < b)
printf("(%d,%d)", a, b);
}
return 0;
}