标题:求2-1000的所有完数
取消只看楼主
mi1992
Rank: 2
等 级:论坛游民
帖 子:21
专家分:13
注 册:2010-4-23
结帖率:62.5%
已结贴  问题点数:20 回复次数:3 
求2-1000的所有完数
完数是指:该数的各因子之和正好等于本身。例如:6=1+2+3   
#include<stdio.h>
void main()
{int n,i,x=0;
for(n=2;n<=1000;n++)
{
    for(i=1;i<=n/2;i++)
    { if(n%i)  continue;
        x+=i;
    }
    printf("%d\n ",x);
    if(n==x) printf("完数是%d\n",n); x=0;}
}我得到是些乱七八糟的数,但如果把倒数第2行  printf("%d\n ",x);
去掉,好像就好了,请问高手,这是怎么回事?    我是新手。
搜索更多相关主题的帖子: 因子 
2010-04-25 22:33
mi1992
Rank: 2
等 级:论坛游民
帖 子:21
专家分:13
注 册:2010-4-23
得分:0 
回复 2楼 woodydongli
先谢谢你……呵呵,那个倒数第2行printf("%d\n ",x);
我是无意中加的,开始以为加不加无所谓,但加了之后后面的那个输出完数的printf函数 好像就没作用……不知道怎么回事?
2010-04-26 20:28
mi1992
Rank: 2
等 级:论坛游民
帖 子:21
专家分:13
注 册:2010-4-23
得分:0 
回复 5楼 韩明海
有个continue函数,如果当n%i不为零时,会执行,那么下面的部分就不会被执行吧,所以应该不需要用else 吧
2010-04-26 20:32
mi1992
Rank: 2
等 级:论坛游民
帖 子:21
专家分:13
注 册:2010-4-23
得分:0 
回复 8楼 韩明海
多谢……
2010-04-28 12:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-304399-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.158505 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved