输出100-2000之间的完全数

输出100-2000之间的完全数

思路

  • 完全数=除本身外各因子的和;例 6=1+2+3;
  • 第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。

代码实现

int main()
{
    int j,i,s,count=0;
    for(i=100;i<=2000;i++){
            s=1;           //每次循环s需要重新赋值,否则s会一直累加
        for(j=2;j<i;j++){
            if(i%j==0)
                s=s+j;
        }
        if(s==i){
            printf("s:%d i:%d\n",s,i);
            count++;
            }
    }
    printf("完全数的个数:%d",count);
}

运行结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_20185737/article/details/104145778