永发信息网

C语言编程求助

答案:1  悬赏:20  手机版
解决时间 2021-05-07 08:43
  • 提问者网友:萌卜娃娃
  • 2021-05-06 09:38
#include<stdio.h>void main(){ int n,i,Sn,m,k; for(n=2;n<=1000;n++) {Sn=0;  for(i=2;i<=n;i++)  {if(n%i==0) Sn=Sn+(n/i);}
   if(n==Sn)    {printf("%d its factors are ",n);     for(m=2;m<=n;m++)       {if(n%m==0)        printf("%d ",n/m);}        printf("\n");      }    } }如上:这样可以正确以%d its factors are ...输出1000以内的完数(如),但是如果把倒数第六行 printf("%d ",n/m);}改成k=n/m;       printf("%d ",k);}输出的完数的因子就会重复很多次,这是为什么?(图 ep:)
最佳答案
  • 五星知识达人网友:第四晚心情
  • 2021-05-06 10:27

#include<stdio.h>
void main()
{ int n,i,Sn,m,k;
 for(n=2;n<=1000;n++)
 {Sn=0; 
 for(i=2;i<=n;i++) 
 {if(n%i==0) Sn=Sn+(n/i);}
   if(n==Sn)  
   {printf("%d its factors are ",n);   
   for(m=2;m<=n;m++)    
   {if(n%m==0)    
   { k=n/m;
   printf("%d  ",k);
   }
   }    
   printf("\n");   
  }  
 }
}


//可以,你就是少加了}



 { k=n/m;
   printf("%d  ",k);
   }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯