| 以文本方式查看主题 - 堕落街论坛 (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语言,应该会有更多的不懂的问题! 呵呵! |