3.2亲密数
1.问题描述
如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。
2.代码
#include <stdio.h>
int main()
{
int a, i, b, n;
printf("There are following friendly - numbers pair smaller than 3000:\n");
for (a = 1; a < 3000; a++)
{
for (b = 0, i = 1; i <= a / 2; i++ )
{
if(! (a % i))
{
b += i;
}
}
for (n = 0, i = 1; i <= b/2; i++)
{
if(! (b % i))
{
n += i;
}
}
if(n == a && a < b)
{
printf("%4d..%4d\n", a, b);
}
}
return 0;
}