| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1380 人关注过本帖
标题:求 完数 不知道正不正确
只看楼主 加入收藏
mmmzy888
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-4-16
收藏
 问题点数:0 回复次数:11 
求 完数 不知道正不正确
/********************************************************************************/
/*题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。*/
/*      例如6=1+2+3.                                                                    */
/*      编程找出1000以内的所有完数。                                             */
/********************************************************************************/

我编了出来 但在2到1000内 只有6 没有其他数了 请问各高手在1000内还有其他数吗

谢谢
搜索更多相关主题的帖子: 之和 
2005-04-16 00:57
skycanny
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2005-3-5
收藏
得分:0 
穷举。。。
2005-04-16 08:56
mmmzy888
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-4-16
收藏
得分:0 
我想知道有多少个
网上说是 6   28  还有一个不知道是什么数
我写了程序 但只求出一个6  
28=1*2*2*7
但28!=1+2+2+7
是不是我理解错误
谢谢帮忙

如饿鬼吃东西一样学习知识
2005-04-16 14:15
skycanny
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2005-3-5
收藏
得分:0 
28 = 1 + 2 + 4 + 7 + 14
2005-04-16 14:30
mmmzy888
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-4-16
收藏
得分:0 
那可能是我理解错误
28=1+2+4+7+14 是怎样得出来的
(什么是因子?不同于因数吗?)

如饿鬼吃东西一样学习知识
2005-04-17 02:22
激情依旧
Rank: 1
等 级:新手上路
威 望:2
帖 子:524
专家分:0
注 册:2005-4-4
收藏
得分:0 

#include <iostream> using namespace std; void main() { for(int i=1; i<1000; i++){ int sum=0; for(int j=1; j<=i/2; j++) if(i%j==0) sum+=j; if(sum==i) cout <<i<<"是完数.\n"; } }

--------------------------- #include<stdio.h> main() { int x,i,sum; for(x=2;x<=1000;x++) { sum=0; for(i=1;i<=x/2;i++) if(x%i==0) sum+=i; if(sum==x) printf("完数:%d\n",sum); } } 晕死了。发的时候他突然说网页无法显示(发了nn次都没发出去)。我没办法上传抓图。不过大家可以上机验证一下。答案是 6 28 496


生是编程人!!!!死是编程鬼!!!!颠峰人生!!!焚尽编程!!! 爱已严重死机!情必须重新启动!情人已和服务器断开连接!网恋也需要重新拨号!-----激情依旧
2005-04-17 03:03
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
收藏
得分:0 

/********************************************************************************/ /*题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。*/ /* 例如6=1+2+3. */ /* 编程找出1000以内的所有完数。 */ /********************************************************************************/ #include <stdio.h>

void main() { int count; for(int i=1;i<=1000;i++) { count=1; for(int j=2;j<=i/2;j++) { if(i%j==0) count+=j; } if(i==count) printf("%5d",i); } printf("\n"); }


Every thing is possible.
2005-04-17 10:28
CJAVA
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-4-2
收藏
得分:0 
为什么是i/2

2005-04-17 16:35
daiyuancan
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-6-9
收藏
得分:0 

1000以内的完数有:
6 24 28 496

Press any key to continue

2006-06-09 23:08
chinaking8
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-5-15
收藏
得分:0 
#include<stdio.h>
void main()
{
int i,j,s;
for(i=1;i<=1000;i++)
{
for(j=2;j<=i/2;j++)
{ s=1;
if(i%j==0)
s=s+j;
}
if(i==s)
printf("%5d",i);
}
printf("\n");
}和上面有什么区别,为什么这个就不能运行呢

2007-05-15 20:16
快速回复:求 完数 不知道正不正确
数据加载中...
 
   



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

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