王朝百科
分享
 
 
 

完数

王朝百科·作者佚名  2010-01-13  
宽屏版  字体: |||超大  

一个数如果恰好等于除它本身外的因子之和,这个数就称为"完数",也叫“完美数”。例如6=1+2+3.(6的因子是1,2,3)

求1000以内的完数的C++语言代码如下:

#include<iostream>

using namespace std;

int main()

{int n=1000;

int r=0,j,i;

for(i=1;i<=n;i++)

{r=0;

for(j=1;j<i;j++)

{if(i%j==0){r=r+j;}}

if(r==i)

{cout<<i<<endl;}}

return 0;

}

求1000以内的完数的C语言代码如下:

#include <stdio.h>

int main()

{

int n=1000;

int r,j,i;

for(i=1;i<n; i++){

r = 0;

for(j=1;j<i;j++){

if(i%j == 0){

r = r + j;

}

}

if(r == i){

printf("the result is:%d

",r);

r = 0;

}

}

return 0;

}

输出结果为:

6,28,496,

即1000以内的完数只有6、28、496三个数字。

用Java编写代码如下(只需修改N即可):

{public static void main(String args[])

{intsum=0,i,j;

for(i=1;i<=1000;i++)

{for(j=1,sum=0;j<=i/2;j++)

{if(i%j==0)

sum+=j;

}

if(sum==i)

System.out.println("完数:"+i);

}

}

}

求N以内的完数的帕斯卡语言代码如下:

var s,i,m:qword;

begin

for s:=1 to n do begin

m:=0;

for i:=1 to s-1 do

begin

if s mod i=0 then m:=m+i;

end;

if m=s then write(s)

end;

writeln('over');

end.

得出了第四个完数 8128

--------- 完数(Prefect number的形式------------------------------

欧几里德证明了:一个偶数是完数,当且仅当它具有如下形式:2^(p-1)*(2^p-1)

其中2^p-1是素数

完全数(Perfect number)是一些特殊的自然数:它所有的真因子(即除了本身以外的约数

)的和,恰好等于它本身。

例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3

=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加

,1+2+4 + 7 + 14=28。后面的数是496,8128。

古希腊数学家欧几里德是通过 2^(n-1)*(2^n-1) 的表达式发现头四个完全数的。

当 n = 2^1*(2^2-1) = 6

当 n = 2^2*(2^3-1) = 28

当 n = 2^4*(2^5-1) = 496

当 n = 2^6*(2^7-1) = 8128

欧几里德证明了:一个偶数是完数,当且仅当它具有如下形式:2^(n-1)*(2^n -1),而(2^n-1)必须是素数。

尽管没有发现奇完数,但是当代数学家奥斯丁·欧尔(Oystein Ore)证明,若有奇完全

数,则其形状必然是12p + 1或36p + 9的形式,其中p是素数。在1018以下的自然数中奇完

数是不存在的。

3

例子

6,28、496,8128,33550336,8589869056(10位),137438691328(12位),

2305843008139952128(19位)……

偶完数都是以6或8结尾。如果以8结尾,那么就肯定是以28结尾。

除6以外的偶完数,把它的各位数字相加,直到变成一位数,那么这个一位数一定是1(亦即

:除6以外的完数,被9除都余1。):

28:2+8=10,1+0=1

496:4+9+6=19,1+9=10,1+0=1

所有的偶完数都可以表达为2的一些连续正整数次幂之和,从2p - 1到22p - 2: <注:以下a的n次方表示形式为a(n)>

6=2(1 ) + 2(2 )

28=2(2 ) + 2(3) + 2(4)

496=2(4) + 2(5) + ... + 2(8)

8128=2(6) + 2(7) + 2(8)+... + 2(12)

33550336=2(12) + 2(13 ) + 2(14)... + 2(24)

每一个偶完数都可以写成连续自然数之和:

6=1+2+3

28=1+2+3+4+5+6+7;

496=1+2+3+…+30+31

除6以外的偶完数,还可以表示成连续奇数的立方和(被加的项共有):

28=1(3) + 3(3)

496=1(3) + 3(3) + 5(3) + 7(3)

8128=1(3 ) + 3(3) + 5(3) + ... + 15(3)

33550336=1(3) + 3(3) + 5(3) + ... + 125(3) + 127(3)

每一个完数的所有约数(包括本身)的倒数之和,都等于2:

1/1 + 1/2 + 1/3 + 1/6 =2

1/1 + 1/2 + 1/4 + 1/7 + 1/14 + 1/28 =2

它们的二进制表达式也很有趣:

(6)10 = (110)2

(28)10 = (11100)2

====用VB编写代码如下=====

Dim i As Integer

Dim j As Integer

Dim intSum As Integer

For i = 1 To 1000

intSum = 0

For j = 1 To Int(i / 2)

If i Mod j = 0 Then intSum = intSum + j

Next j

If intSum = i Then Print i

Next i

====用PHP编写代码如下=====

求1000以内的完数的PHP语言代码如下:

for($i=1;$i<=1000;$i++)

{ $wannum=0;

for($j=1;$j<$i;$j++)

{if ($i%$j==0)

{$wannum+=$j;}

}

if($wannum==$i)

echo $i."<br>";

}

==============================================java代码如下

public class WanShu {

public static void main(String[] args) {

int s;

for (int m = 1; m < 10000; m++) {

s = 0;

for (int i = 1; i < m; i++)

if (m % i == 0)

s = s + i;

if (s == m)

System.out.println(s);

}

}

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
中国古代四大美女:背后隐藏惊人秘密
 女性   2025-06-20
如何用java替换看不见的字符比如零宽空格&#8203;十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有