从小到大输出两个正整数m和n(m≥6,n≤5000)之间的亲密数对。说明:若a和b为一对亲密数,则a的因子和等于b,b的因子和等于a,且a不等于b。例如,220与284是一对亲密数。
#include <stdio.h>
int yin(int n);
int main()
{
int a,b,sum1,sum2;
int x,j;
scanf("%d%d",&a,&b);
for (x=a;x<=b;x++)
{
for (j=x+1;j<=b;j++)
{
sum1=yin(x);
sum2=yin(j);
if(sum1==j&&sum2==x)
printf("%d %d\n",x,j);
else
sum1=0;
sum2=0;
}
}
return 0;
}
int yin(int n)
{
int sum=0;
for(int i=1;i<n;i++)
{
if(n%i==0)
sum=sum+i;
}
return sum;
}
需要5秒内完成,不知道怎么减少计算量。