写函数,以两个正整数为参数,如果该两数是友好的,返回t,否则返回f。如果这两个每个的约数和(除了本身以外)等于对方整数,则称这对数是友好的。(例如:1184的约数和有:1+2+4+8+16+32+37+74+148+296+592=1210;1210的约数和有:1+2+5+10+11+22+55+110+121+242+605=1184。这对数是友好的。)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
int facsum(int n)
{
int x=0;
for(int i=1;i<n;i++)
if (n%i==0)
x+=i;
return x;
}
int main()
{
int m,n;
printf("请输入两个整数:\n");
scanf("%d %d",&m,&n);
if (facsum(n)==m&&facsum(m)==n)
{
printf("%d和%d是友元\n",m,n);
}
else
{
printf("%d和%d不是友元\n",m,n);
}
return 0;
}