找亲密数
如果整数A的全部因子(包括1,但不包括A本身)之和等于B;而且整数B的全部因子(包括1,但不包括B本身)之和等于A,则称整数A和B为亲密数。
由键盘接收5个正整数,请判断这5个正整数是否有亲密数,如果有亲密数,则输出该整数和亲密数,否则输出该整数和0。该整数和亲密数或0之间使用逗号分隔,每个整数一行,共输出5行。
例如:
输入5个整数:105 220 2000 500 2680
由于只有220有亲密数,所以输出5行为:
105,0
220,284
2000,0
500,0
2680,0
#include<stdio.h>
int main()
{
int a[5],i,t,j,s;
for (i=0;i<5;i++)
{
scanf("%d",&a[i]);
for (s=1,t=0;s<=a[i]/2;s++)
{
if(a[i]%s==0)
t+=s;
else t=t;
}
for(j=0,s=1;s<=t/2;s++)
{
if(t%s==0)
j+=s;
else j=j;
}
if(j==a[i])
printf("%d,%d\n",a[i],t);
else
printf("%d,0\n",a[i]);
}
return 0;
}