c语言训练亲密度数
# include & ltstdio.h & gt
#定义N 3000 yzh();
void main()
{
/* int a;scanf("%d ",& ampa);printf("%d ",Yzh(a));*/
int a,b,I,j;
for(I = 2;我& ltn;i++)
{
a = Yzh(I);
for(j = 2;j & ltn;j++)
{
b = Yzh(j);
if(a = = j & amp;& ampb = = i & amp& amp我& ltJ) //它应该小于,因为较小的数字先出现。
printf("(%d,%d)",I,j);
}
}
}
int Yzh(int x)
{
int n,sum = 0;
for(n = 1;n & lt= x/2;n++)
{
if(x%n==0)
sum+= n;
}
返回总和;//因为要在主函数中使用因子的和,所以必须将调用函数的值返回给主函数。
}
这是我修改的你的代码,输出符合你的要求,但是3000以内的亲密数好像只有3对。