以文本方式查看主题

-  堕落街论坛  (http://duoluojie.1314179.com.cn:443/index.asp)
--  游戏体育  (http://duoluojie.1314179.com.cn:443/list.asp?boardid=331)
----  [求助]  (http://duoluojie.1314179.com.cn:443/dispbbs.asp?boardid=331&id=88273)

--  作者:overgame
--  发布时间:2005/7/1 18:57:00
--  [求助]

还有啊!

打印出1000以内的所有"完全数".

最好是写详细一点(以免我这电脑白痴看不明白).

谢谢!


--  作者:我最简单
--  发布时间:2005/7/4 9:22:00
--  
-------------------------完全数的定义--------------------------
\'我们来看一下4这个数,它的真因子有1、2,其和是3。由于4本身比其真
\'因子之和要大,这样的数叫做盈数。再来看一下12这个数,这的真因子
\'有1、2、3、4、6,其和是16。由于12本身比其真因子之和要小,这样的
\'数就叫做亏数。那么有没有既不盈余,又不亏欠的数呢?既有没有恰恰
\'等于它自己的所有真因子之和的数呢?有。这样的数就叫做完全数。
\'---------------------------------------------------------------
\'例如:6能被1、2、3整除,而1+2+3=6,所以,6是最小的完全数
\'例如:28能被1、2、4、7、14整除,而1+2+4+7+14=28
\'其他的完全数:496、8128、33550336

--  作者:我最简单
--  发布时间:2005/7/4 9:24:00
--  
#include<stdio.h>
void main()
{
int a,i,m;
printf("There are following perfect numbers smaller than 1000:\\n");
for(a=1;a<1000;a++) /*循环控制选取1~1000中的各数进行判断*/
{
for(m=0,i=1;i<=a/2;i++) /*计算a的因子,并将各因子之和m=a,则a是完全数输出*/
if(!(a%i))m+=i;
if(m==a)
printf("%4d ",a);
}
printf("\\n");
}
*运行结果
TThere are following perfect numbers smaller than 1000:
6 28 496

--  作者:overgame
--  发布时间:2005/7/4 10:57:00
--  

非常谢谢!!!

真的很详细!

不过我12号才考C语言,应该会有更多的不懂的问题!

呵呵!