标题:(求助)一个关于完数的程序
只看楼主
Amie
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-3-8
 问题点数:0 回复次数:7 
(求助)一个关于完数的程序
一个数如果等于它的因子之和则称这个数为完数,如6=1+2+3,则6为一个完数。编写一个C程序,求出1-----1000之间的所有完数。哪位高手帮帮我啊,多谢啦!!
2006-03-08 17:13
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
得分:0 
记得以前有过关于这个的贴子,搜索一下.

2006-03-08 18:20
wanglff
Rank: 2
等 级:新手上路
威 望:5
帖 子:375
专家分:0
注 册:2005-12-21
得分:0 
#include <stdio.h>
main ()
{
int i,j,sum;

for(i=1;i<=1000;i++)
{
sum=0;
for(j=1;j<=i/2;j++)
if (i/j*j==i) sum+=j;
if (sum==i)
printf("%d\t",i);
}
}
这个是用c写的不过很容易改成c++我就不改了
算法一样给你参考一下下

自强不息:)
2006-03-08 20:28
giant
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-12-11
得分:0 
以下是引用wanglff在2006-3-8 20:28:00的发言:
#include <stdio.h>
main ()
{
int i,j,sum;

for(i=1;i<=1000;i++)
{
sum=0;
for(j=1;j<=i/2;j++)
if (i/j*j==i) //i/j*j==i;这个表达式是一直正确的,所以把这句去掉,可结果只输出了一个6,这句到底有什么作用,为什么非加不可呢?
sum+=j;
if (sum==i)
printf("%d\t",i);
}
}
这个是用c写的不过很容易改成c++我就不改了
算法一样给你参考一下下


2006-03-08 22:05
jiangjian
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-3-9
得分:0 

以下是引用wanglff在2006-3-8 20:28:00的发言:
#include <stdio.h>
main ()
{
int i,j,sum;

for(i=1;i<=1000;i++)
{
sum=0;
for(j=1;j<=i/2;j++)
if (i/j*j==i) //“i/j*j==i;这个表达式是一直正确的”,谁告诉你一直正确的,i/j是整除取商的意思,如果j不能整除i的话,结果返回商值,余数被截除了,所以i/j*j==i表示的是j能够整除i,j是i的因子,这是判断条件,怎么能够删除呢//
if (sum==i)
printf("%d\t",i);
}
}

2006-03-09 00:47
wanglff
Rank: 2
等 级:新手上路
威 望:5
帖 子:375
专家分:0
注 册:2005-12-21
得分:0 
jiangjian说的对

自强不息:)
2006-03-09 08:25
Amie
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-3-8
得分:0 
太感谢大家了,你们真的是太好了!!谢谢!!!

2006-03-09 22:04
DarkHero
Rank: 1
等 级:新手上路
威 望:2
帖 子:191
专家分:0
注 册:2006-1-14
得分:0 
所以i/j*j==i表示的是j能够整除i
0==i%j 不就行了么?呵呵
我以前写的,仅供参考:
void getNum(int min,int max)
{
for(int num=min,sum=1;num<=max;num++)
{
for(int r=2;r<num;r++)
{
if(num%r==0)
sum+=r;
}
if(num!=1 && num==sum)
cout<<num<<endl;
sum=1;
}
}

for( ; me.alive() ; ) { 淡泊名利,志存高远 } //Forever
2006-03-09 22:36



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




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

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