完数问题,请大佬帮忙看一下这代码哪里有问题。

输出1000以内的完数。
2025-06-22 02:28:53
推荐回答(1个)
回答1:

你的求1000以内完数的C语言程序,我帮你改完了,你看看吧(改动的地方见注释)

#include

int main()

{

 int i,j,k=0;

 for(i=2;i<1001;i++)

 {

  k=0;//这里加一句,k在每个数判断前要置0

  for(j=1;j
  {

   if(i%j==0)

   {

    k=k+j;

    

   }

  }

  if(i==k) //这里把if语句移到这里,因为完数是等于所有因子的和,写在for-j循环内,会使i等于部分因子和的数如24,也作为完数

   printf("%d\t",i);

 }

 printf("\n");

 return 0;

}