亲密数,如果整数A的全部因子(包括1,不包括A本身)之和等于整数B,整数B的全部因子(包括1,不包括B本身)之和等于整数A,则称整数A与B为亲密数。
#include <stdio.h>
#include <stdlib.h>
void main()
{
int a,b,c,i;
printf("请输入1000以内的亲密数:");
//循环穷举1000以内整数
for(a=1;a<1000;a++)
{
//计算a的各个因子
for(b=0,i=1;i<=a/2;i++)
{
if(!(a%i))
b+=i;
}
//计算b的各个因子
for(c=0,i=1;i<=b/2;i++)
{
if(!(b%i))
c+=i;
}
if(c==a&&a<b)
printf("%4d--%4d ",a,b);
}
return 0;
}
运行结果如下: