如果整数a.b 的因子之和等于整数b,整数b的因子之和等于a,因子包括1但不包,本身,且a不等于b,则称a、b为亲密数
#include <stdio.h>
#include <stdlib.h>
//判断是否为亲密数
int isfriendnum(int a, int b)
{
int sum=1;
for(int i=2; i<=a/2; i++)
{
if(a%i == 0)
{
sum+=i;
}
}
if(sum != b)
{
return 0;
}
else
{
sum = 1;
for(i=2; i<=b/2; i++)
{
if(b%i == 0)
{
sum+=i;
}
}
if(sum == a)
{
return 1;
}
else
{
return 0;
}
}
}
void main()
{
int m,n;
printf("请输入两个不同的数,两个数用空格分开:\n");
scanf("%d %d",&m,&n);
if(m==n)
{
printf("%d和%d不是亲密数!\n",m,n);
return;
}
if(isfriendnum(m,n) == 0)
{
printf("%d和%d不是亲密数!\n",m,n);
}
else
{
printf("%d和%d是亲密数!\n",m,n);
}
}