回 帖 发 新 帖 刷新版面

主题:求教一个C语言程序

求三位整数的所有完数
完数:它的所有因子的和等于它本身的数称为完数
例:6=1+2+3;28=1+2+4+7+14;

帮忙检查一下我的程序哪里错了
#include"stdio.h"
void main()

  int m,n,sum;
  sum=0;
   for(m=100;m<1000;m++)
      {
        for(n=1;n<m;n++)
          {
             if(m%n==0)
               sum+=n;
          }
       if(m==sum)
        printf("%d\m",m);
       }
}
谢谢了!!!

回复列表 (共5个回复)

沙发

sum=0 这句应该放在第一层循环里面,第二层循环的前面,也就是
for(m=100;m<1000;m++)
{sum=0;
for(n=1;n<m;n++){
.
.
.
因为每次换一个数m测试的时候都要对sum清零;
而且最后的小问题“%d\m"应该是"%d\n"

板凳


多谢指教啊
我刚学C语言,还不怎么懂;
谢谢;还望个位大侠不惜赐教啊
[em5][em5][em5]

3 楼

#include"stdio.h"
int main()

  int m,n,sum;
   for(m=1;m<1000;m++)
      {
          sum=0;
        for(n=1;n<m;n++)
          {
             if(m%n==0)
               sum+=n;
          }
       if(m==sum)
        printf("%d  ",m);
       }
}

4 楼

#include"stdio.h"
void main()

  int m,n,sum;
  sum=0;
   for(m=100;m<1000;m++)
      {
        for(n=1;n<m;n++)
          {
             if(m%n==0)
               sum+=n;
          }
       if(m==sum)
        printf("%d\n",sum);
   }        printf("%d\n",sum);

}

5 楼

谢谢个位了

我来回复

您尚未登录,请登录后再回复。点此登录或注册