关于完全数的一个猜想及其证明.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于完全数的一个猜想及其证明 刘士杰 杨锡伟 项以江 (无锡市大桥实验中学214001) 在茫茫数字世界中,有这么一种奇妙的数:如果一个自然数除自身之外的所有因数之和等于它本身,这个数就叫做完全数.这样的数有几个,该怎样求解?就这个问题,1718年,小欧拉曾向约翰·伯努利请教,当时并未得解.如今我们借助计算机初步揭开了它神秘的面纱. 我们先借助计算机用穷举法来找这样的数,用Pascal语言代码找出100000000内的完全数,代码如下: var n,i,s,j:longint; begin for j:=1 to 100000000 do begin s:=1;{加上因数1} for i:=2 to trunc(sqrt(j)) do if (j mod i)=0 then s:=s+i+(j div i); if j=s then writeln(j); end; end. 我们总共找到5个完全数:6,28,496,8128乍一看,完全数相互之间并没有明显的关系,完全数真的是毫无规律可言吗?在毫无头绪中,让我们先来试着分解一下完全数的质因数:6=2×3,28=22×7,496=24×31,8128=26×127212×8191.进而发现3=22?1,7=23?1,31=25?1,127=27?1, 8191=213?1.对照两组数据: 6=2×3 3=22?1 28=22×7 7=23?1 496=24×31 31=25?1 8128=26×127 127=27?1212×8191 8191=213?1 很自然,我们可以有如下猜想: (2n)×(2n+1?1) =完全数 但是,对照上式,发现当n=3和5时所得出的120与2016不是完全数,分析发现此时2n+1?1为合数15、63,而n=1,2,4,6时2n+1?1为质数.于是我们对上式作如下修正:(2n)×(2n+1-1)=完全数,其中n为自然数(n≠0),且2n+1-1为质数. 这个猜想合理吗?可以证明吗?是的.证明如下: 令(2n)×(2n+1?1) =完全数x,(此时2n+1?1为质数),它除自身之外的所有因数之和为 =(1+2+22+…+2n)+ ( ) =2n+1?1+x×( ) =2n+1?1+ x?? 将 中的x用x=(2n)×(2n+1?1)代入,则: 原式=2n+1?1+ x?(2n+1?1) =x. 证明到此为止,并不复杂. 若2n+1?1为合数,则因数不止这些,所以120与2016不是完全数.于是, 通过100000000内完全数的探求,我们可以得到完全数的一个形式: 当n为自然数(n≠0),且2n+1?1为质数时,(2n)×(2n+1?1)=完全数. 囿于目前的知识水平,我们还没有证明:只要是完全数,就一定符合(2n)×(2n+1?1)的形式(其中n为自然数(n≠0),且2n+1?1为质数),在此我们大胆作出如下猜想: 完全数=(2n)×(2n+1?1),其中n为自然数(n≠0),且2n+1?1为质数. 同样地,我们验证这个猜想的设想是:用穷举法找出完全数,看是否存在反例.遗憾的是在具体操作时遇到了困难:我们的个人计算机没有这么强的运算能力,相信这个问题不难得到解决. 附录   附录是我们修改了程序代码,试图能找出多一点的完全数,一直找到n=15, (2n)×(2n+1?1)=2147450880时,也未有新的完全数. Pascal程序代码: var i,j,n,s,s1,k:longint; f:text; begin assign(f,'d:\wq.txt'); rewrite(f); j:=1; for i:=1 to 15 do begin j:=j*2; s:=j*(j*2-1); s1:=1; for n:=2 to trunc(sqrt(s)) do if s mod n =0 then s1:=s1+n+s div n; if s=s1 then begin writeln(f,'n=',i,':'); write(f,s,'='); write(f,2,'(',i,')','*','(',2,'(',i+1,')','-1)=',j,'*',j*2-1); writeln(f);writeln(f); end else

文档评论(0)

yurixiang1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档