对于数a,因子里包含1和a么?
你这个实现感觉复杂了,计算有点重复,没怎么看懂。
你参考一下这个还没优化过的算法
int main()
{
int a,i,j,sum1,sum2;
int msum[5000];
float sqrtbon;
sum1=0;sum2=0;
msum[0]=1;
msum[1]=3;
for(a=3;a<=5000;a++)
{ msum[a-1]=0;
sqrtbon=sqrt((float)a);
for(i=1;i<=sqrtbon;i++)
{ if(a%i==0)
if(a/i!=i)
msum[a-1]+=i+a/i;
else
msum[a-1]+=i;
}
}
for(i=0;i<5000;i++)
{ for(j=i+1;j<5000;j++)
{ if(msum[i]==msum[j])
{ printf("%d and %d are one pair\n",i+1,j+1);
}
}
}
}
哇,这是什么啊
哇!这是什么呀◎﹏◎