永发信息网

简单c语言题目

答案:1  悬赏:20  手机版
解决时间 2021-05-08 05:35
  • 提问者网友:几叶到寒
  • 2021-05-07 14:50

求1到1000内的完数,所谓完数就是其值等于其因子值的和,如6的因子为 1 2 3 ; 6=1+2+3;所以6是完数。

我写了这个程序。。。好像错误。。。我想知道错在哪,错在哪,谢谢、。、

#include<stdio.h>
main()
{
int i,k,x,s=0;
for(i=2;i<1000;i++) //从2开始
{for(k=1;k<i;k++)
if(i%k==0){x=k,s=s+x;} //如果 余数为0,则K就是因子,累加
}

if(s==i)
printf("%4d",i);

}

最佳答案
  • 五星知识达人网友:杯酒困英雄
  • 2021-05-07 16:28
if(s==i)拿进循环里去,另外s需要在下次循环开始时重置为0

#include<stdio.h>

main()
{
int i,k,x,s;
for(i=2;i<1000;i++) //从2开始
{
s=0;
for(k=1;k<i;k++)
if(i%k==0){x=k,s=s+x;} //如果 余数为0,则K就是因子,累加
if(s==i)
printf("%4d",i);
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯