| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7794 人关注过本帖
标题:求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
快速回复:求2-1000的所有完数
数据加载中...
 
   



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

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