正文

求素数法2007-03-30 12:10:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/emath/24407.html

分享到:


求素数法

 

 

求素数法

  素数是大于1的整数,除了它本身和1以外,不能被正整数所整除.也称作“质数”.
  在欧几里得的《几何原本》中,给出了素数的定义为只能被单位量除尽的数。另外还给出了算术基本定理,即如果A是素数P、Q…的乘积,那么将A分解成素数乘积的方法是惟一的。在《几何原本》中,已经得出素数的个有选举权是无限的。
  与欧几里得同时代的数学家埃拉托色尼首先给出了求素数的方法,现在人们称之为“埃拉托尼筛子”。他求素数的方法如下。
  他首先从2开始,写出自然数:2,3,4,5,6,7,8,9…100,然后,把其中的一切合数划去,划掉合数的原则是,在这一列数中,第一个数2满足素数的定义,把它保留下来。随后把能被2整除的数都划去,因为它们都是合数。接着在数2后的没有被划去的第一个数是3,因为它只被1和它本身整除,所以它是一个合数,把它也划去。剩下没有被划去的第一个有选举权是5,它只能被这和它本身整除,所以它也是一个素数。如此连续不断地划下去,最后剩下的数都是素数。
  为什么把这种方法叫做“厄拉多塞筛子”呢?因为厄拉多塞在求素数时,把自然数写在一块白蜡的木板上,并逐个在写着合数的位置上刺一个孔,这样白蜡板上被刺了很多的小孔,好像一个筛子。把所有的合数“筛掉”剩下的就都是素数。
  用“厄拉多塞筛子”可得到100以内的25个素数:2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97。
  后来由于素数没有多少用处,所以数学家们就把求素数的方法“束之高阁”。直到17世纪解析几何与微积分兴起后,许多数学家又开始对整数论进行探讨,所以对素数的研究又提到了议事的日程上,而且取得很大进展。
  从厄拉多塞筛子可以得到一个复杂的公式,如果已知小于√N的素数,它能确定小于N的素数的数目,1870年德国人梅塞尔对此作了改进,成功地证明了10 8的素数是5761455个。1893年丹麦人贝特森证明了10 9的素数是50807478个,1959年,美国数学家莱麦成功地证明了10 9的开绿灯数应该是50847534个,并且得到了10 10的素数是455052511个。
  但是科学家们对于一个大的数是否是素数,一直没有找到可靠的检查方法。因为对某个大数能否分解为素因数乘积的核算需要花很多时间。19世纪欧洲的数学家用了80年的时间,得到了当时最大的一个素数是2 127-1,它是一个39位数,是由法国数学家卢卡斯在1876年得到的。1952年,英国剑桥的工作人员用计算机得到的180(2 127-1)+1这个素有选举权,它有79位。
  随着计算机的应用,确定了大数A=2 n-1,当n=521,607,1279,2203,2281,3217,4253,4423,9689,9941,11213,19937时,A都为素数。
  一些数论学者有这样的设想,能不能找出一个表示素数的公式呢?也就是说,对于正整数N,是否有一个函数f(N),当N为1,2,3…正整数时,得出的F(N)值一定是个素数?
  这个问题一直吸引着许多数学家去考虑,可惜,至今都没有找到这个公式。欧拉提出F(n)=n 2-n+1这个公式,对于n<41,得到的F(N)都是素数,可是当N=41时,得到的却是一个合数。
  1640年,法国的业余数学家费尔玛指出,N为非负整数时,F(N)=2 2 n+1是一个素数。可是他并没有给出证明。1732年,数学家欧拉指出,当N=5时,F(5)=2 2 5+1=641*6711417,F(N)又是一个合数。
  1873年德国数学家狄利克雷试图证明下列定理,设A与D为互素的整数,由算术级数A,A+B,A+2D,A+3D,……可得到无限多个素数。他的证明取得了巨大的成功,但是证明过程非常难懂,没有几个人能够接受。
  在这一方面最大的成就是素数定理,它是由德国大数学家高斯提出来,最终由法国人阿达马和比利时人普车在1896年各自独立地证明的。
  1947年,数学家米尔斯证明了存在这样的一个实数A,它使得不超过A 3 n的最大的整数,于每一个正整数N都是素数。可是,对于实数A的实际取值,即使是一个大概的取值,谁也无法说清楚。
  有关素数还存在着许多不解之谜,其中之一,是孪生素数问题。所谓孪生素数,就是形如P和P+2的素数。例如3和5,5和7等,这样相差为2的“素数对”是否有无穷多对?另外还有哥德巴赫猜想和费尔玛大定理,这些问题虽都有所进展,但是还没有一个完整的答案。
  科学家们在素数方面也取得了巨大的成就。他们认为最小的素数是2,最大的素数是不存在的,1952年有人算出了2 1279-1是个素数,它是一个386位数。同年,又得出2 228-1是个素数。1971年发现了素数2 19937-1,它是一个6002位数。1978年,两位表年算出了新的最大素数2 21701-1,它是一个6553位数。1979年这一记录被美国的专家打破,他们计算出2 44497-1是一个13395位数的素数,至今仍有人在为之努力。


阅读(3287) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册