/*对上次程序的一些改进,效率提高的可以让人忍受了,虽然还不及他的程序,大家试试*/
#include <stdio.h>
int is_right(int num1)
{
int i=2,sum=1;
while(i*i<num1)
{
if(num1%i==0)
{
sum+=i;
sum+=num1/i;
}
i++;
}
return(sum);
}
int main()
{
int x,y,i,t,count=0;
printf("请输入两个不相等的数x,y:");
scanf("%d%d",&x,&y);
if(x>y)
{
t=x;
x=y;
y=t;
}
for(i=x;i<y;i++)
{
t=is_right(i);
if(t>i&&is_right(t)==i)
{
count++;
printf("第%d个亲和数对是:<%d,%d>\n",count,i,t);
}
}
if(count==0)
{
printf("在%d和%d之间没有亲和数对!\n",x,y);
}
return(0);
}