求亲密数

 问题分析:首先for循环遍历a从1到3000,然后在for循环中,找到a的所有因子,并相加,得到b,再用for循环求出b的所有因子,相加得到一个值,判断该值是否与a相等。同时限定一个新的判断条件a<b消除两者相等的情况。

 代码实现:

#include<stdio.h>
int main()
{
int a,j,i,k,l;
for(a=1;a<=3000;a++)
{
for(k=0,j=1;j<=a/2;j++)
{ //int k=0;
if(a%j==0)
k+=j;
}
for(l=0,i=1;i<=k/2;i++)
{
if(k%i==0)
l+=i;
}
if(l==a&&a<k)
printf("%d----%d\n",a,k);
}

return 0;
}

posted @ 2023-05-26 15:11  千恒  阅读(12)  评论(0编辑  收藏  举报