注册 登录
编程论坛 C语言论坛

2000以内的亲密值只输出两对220和284 ,1184和1210怎么弄

mm1746886443 发布于 2019-11-09 15:07, 1363 次点击
#include<stdio.h>
int fact (int x)
{
    int i,y=0;
    for(i=1;i<x;i++)
        if(x%i==0)
        y+=i;
        return y;


}
void main()
{
    int i,j;
    for (i=2;i<=2000;i++)
    {
        j=fact(i);
        if(i==fact(j))
        
            printf("%d,%d\n",i,j);
    }
}

2 回复
#2
纯蓝之刃2019-11-09 15:37
程序代码:
#include<stdio.h>
int fact (int x)
{
    int i,y=0;
    for(i=1;i<x;i++)
        if(x%i==0)
            y+=i;
        return y;


}

void main()
{
    int i,j;
    for (i=2;i<=2000;i++)
    {
        j=fact(i);
        if(i<j)                //加一句判断i和j大小的语句就行了
            if(i==fact(j))
                printf("%d,%d\n",i,j);
    }
}
#3
mm17468864432019-11-09 15:41
回复 2楼 纯蓝之刃
受教了
1