世界上第一个求素数公式

时间:2022-09-30 10:45:38

世界上第一个求素数公式

摘 要:人们一直认为:在正整数中,素数看起来是以一种随机的方式出现的,很难用一个统一的公式求出来。虽然,人们作了大量的努力和尝试,但至今还是没有找到一个易为计算的素数公式来。有人甚至哀叹:“我们至少还需要一百万年才能完全了解素数。”这种哀叹虽然有点过分和夸张,但求素数的公式几百年都没有出现,可见其难度之大。而下面所给出的求素数公式,即简洁又完整,它包括两个方面的内容:(1)可以统计出n至T之间(T为有限大的自然数,n

关键词:自然数;圆形排列图;n与T之间;素数个数;素数数值

一、自然数的圆形排列图

“在所有自然数列中,素数的分布并不遵循任何有规则的模式”。“我们至少还需要一百万年才能完全了解素数”。……打开某数学网站,我们可以看到某“数论大师”的这些“箴言”“警句”。我们无须针锋相对去驳斥“大师”的宏论,只是想告诉大家这样一个事实:素数是有公式可以求出的,并且这个公式非常简单易学,只要运用这个公式,就可以立刻批量求出n2n之间乃至nT之间的所有的素数。具体方法如下:

先看下面这个自然数的圆形排列图(1处在圆心位置,图中没有显示)。

自然数圆形排列图

在这个排列图中,最里圈的是偶素数2,向外分别是第一圈、第二圈……第f圈。第一圈里有三个数,它们是3,4,5,其中素数有3和5;第二圈有六个数,它们是6,7,8,9,10,11,其中素数有7和11;第三圈、第四圈……,以后每一圈里自然数的个数是前一圈的2倍,它们中的素数个数是怎样的呢?

为了计算的需要,我们把“自然数圆形排列图”中的数据一圈一圈地分开来计算。

1.设第三圈的第一个数12为n,第四圈的第一个数24为2n,则第三圈中自然数的个数为12个(不包括第四圈的24),那么,第三圈中素数的个数可以这样求得:

Ф(1224)=12/2-?渍(3×5;3×7),式中?渍(1224)表示12至24之间素数的个数,■表示在12至24之间共有6个奇数,?渍(3×5;3×7)表示在12至24之间共有15和21两个奇合数,这样可以得到:6个奇数-2个奇合数=4个奇素数,即12至24之间共有4个素数,它们是:13,17,19,23。

这里的3×5和3×7是如何得到的呢?很显然,15和21这两个奇合数在12与24之间,如果缩小3×3=9或者增大5×5=25,则都超出了1224的范围,是不可取的,这就是问题的核心和关键。

2.由于第四圈的第一个数是24,则第四圈中自然数的个数为24个,奇数即是12个,那么,第四圈中素数的个数可以这样求得:

Ф(2448)=■-?渍(3×9,3×11,3×13,3×15,5×5,5×7)=12-6=6

即第四圈中素数的个数为6个,它们是29,31,37,41,43,47。

3.由于第五圈的第一个数是48,则第五圈中自然数的个数为48个,奇数即是24个,那么,第五圈中素数的个数可以这样求得:

Ф(4896)=■-?渍(3×17,3×19,3×21,3×23,3×25,3×27;3×31;5×11,5×13,5×17,5×19;7×7,7×11,7×13)=24-15=9。

即第五圈中素数的个数为9个,它们是:53,59,61,67,71,73,79,83,89。

4.由于第六圈的第一个数是96,则第六圈中自然数的个数为96个,奇数即是48个,那么,第六圈中素数的个数可以这样求得:

Ф(96192)=■-?渍(3×33,3×35,…,3×63,5×23,3×25,5×25,…,5×37;7×17,…,7×23,11×11,…,11×17;13×13)=48-29=19。

为了让读者更直观地看到统计的过程,下面将省略的部分再补充完整,请读者检验。

Ф(96192)=■-?渍(3×33,3×35,3×37,3×39,3×41,3×43,3×45,3×47,3×49,3×51,3×53,3×55,3×57,3×61,3×63;5×21,5×23,5×27,5×29,5×31,5×33,5×35,5×37;7×15,7×17,7×19,7×21,7×23,7×25,7×27;9×11,9×13,9×15,9×17,9×19,9×21;11×11,11×13,11×15,11×17,13×13)=48-29=19。

式中划横线部分为重复的乘积结果,统计时已经删去。

即第六圈中素数的个数为19个,它们是:97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191。

二、n与2n之间素数的个数

为了不失一般性,我们将上一节的计算用公式总结如下,这样,就得到了“求n与2n之间素数个数的公式”和“求n与2n之间的所有素数数值公式”:

公式1:求n与2n之间素数个数的公式:

Ф(n2n)=■-?渍(■3×aj;■5×bk;■7×ci;…■p×qs)

说明:1.式中p≤q,n≤p×qs<2n。

2.式中■3×a;......、■p×qs仅表示统计乘积的个数,与该数字的乘积大小无关,只要是乘积结果在n与2n的范围之内即符合要求。

3.式中乘积结果不允许出现重复现象,凡是出现重复的只保留一个。

4.当n为奇数时,等号后面的第一个数取■。

公式2:求n与2n之间的所有素数数值公式:

(n2n)之间的素数=(n2n)之间的奇数-(■3×aj;■3×ai;■5×bk;■7×ci;…;■p×qs)

说明:1.当n确定之后,“(n2n)之间的奇数”为已知,共有■个。

2.(■3×aj;■5×bk;■7×ci;…;■p×qs)表示(n-2n)之间的所有奇合数;这一点,它和公式1中所表达的实际意义既有联系,又有区别。

3.如用电脑编程,公式2中的数据和结果可由公式1自动生成。

证明:(下面仅对公式1予以证明)

设m为n至2n间的奇数,(1)若m为合数,必然为以下因式分解中的一个:

m=3×a;5×b;7×c;……;p×q(n≤p×q<2n)

所以,任何一个奇合数m不可能留在下式中:

(■个奇数)-(3×aj;5×bk;7×ci;……;p×qs)

当(■个奇数)减去所有的合数之后,留下的数字必然都是素数。

(2)若m为素数,则任何一个素数都不可能被(■个奇数)-(3×aj;5×bk;7×ci;……;p×qs)这个公式减去,所以,在n与2n之间的所有素数得以保留。

证毕。

下面,再通过几个实例的计算来对公式作进一步的说明:

1.计算在17与34之间有多少个素数。

计算过程如下:

Ф(1734)=■-?渍(3×7,3×9,3×11;5×5)=9-4=5

因为17本身是奇数。所以用■,这5个素数是:17、19、23、29、31。

2.计算在39与78之间有多少个素数。

计算过程如下:

Ф(3978)=■-?渍(3×13,3×15,3×17,3×19,3×21,3×23,3×25;5×9,5×11,5×13,5×15;7×7,7×9,7×11)=20-11=9.

因为39本身是奇数。所以用■,这9个素数是:41,43,47,

53,59,61,67,71,73。

3.计算在200与400之间有多少个素数。

计算过程如下:(以下重复部分将不再显示)

Ф(200400)=■-?渍(3×67,3×69,3×71;3×73,3×75,3×77,3×79,3×81,3×83,3×85,3×87,3×89,3×91,3×93,3×95,3×97,3×99,3×101,3×103,3×105,3×107,3×111,3×113,3×115,3×117,3×119,3×121,3×123,3×125,3×127,3×129,3×131,3×133;5×41,5×43,5×47,5×49,5×53,5×55,5×59,5×61,5×65,5×67,5×71,5×73,5×77,5×79;7×29,7×31,7×37,7×41,7×43,7×47,7×49,7×53;11×19,11×23,11×29,11×31;13×17,13×19,13×23,13×29;17×17,17×19,17×23;19×19)=100-68=32。

即在200至400之间素数的个数为32个,它们是:211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397。

4.计算在378与756之间有多少个素数。

计算过程如下:(以下所用的是计算过程中的简略形式)

Ф(378756)=■-?渍(3×127,3×129,……,3×251;5×77,5×79,…,5×151;7×79,7×61,……,7×107;11×37,11×41,……,11×67;13×31,13×37,……,13×53;17×23,17×29,……,17×43;19×23,19×29,……,19×37;23×29,23×31)=189-130=59。

即在378至756之间素数的个数为59个,它们是:379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751。

三、n与T之间素数的个数

下面,我们继续推广之,设T为有限大的一个自然数。那么,在n至T之间(n

公式3:求n与T之间素数个数的公式:

ф(nT)=■-?渍(■3×aj;■5×bk;■7×ci;…;■p×qs)

举例说明如下:

1.计算在15与103之间有多少个素数。

Ф(nT)=■-?渍(3×5,3×7,3×9,3×11,3×13,3×15,3×17,3×19,3×21,3×23,3×25,3×27,3×31,3×33;5×5,5×7,5×11,5×13,5×17,5×19;7×7,7×11,7×13)=44-23=21

即在15至103之间素数的个数为21个,它们是:17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103。

2.计算在100与363之间有多少个素数。

Ф(100363)=■-?渍(3×35,…,3×121;5×23,…,5×71;7×17,……,7×49;11×11,……,11×31;13×17,……,13×23;17×17,17×19;19×19)=132-85=47。

即在100至363之间素数的个数为47个,它们是:101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359。

结论:对以上的几个公式进行总结,本文得出的结论是:

公式4:李君池求素数个数公式:(自我命名)

在n与T之间素数的个数可用如下公式求得:

Ф(nT)=■-?渍(■3×aj;■5×bk;■7×ci;…■p×qs)

式中:p≤q,n≤p×qs≤T,当■的值不是整数时,取■,而■3×aj......、■p×qs表示在符合要求的范围内统计乘积的个数(凡重复的数字仅保留最初出现的那一个),与乘积的大小无关。

公式5:李君池求素数数值公式:(自我命名)

在n与T之间的所有素数的数值同样可以用这一公式求得:

S(nT)=J(■)-H(■3×aj;■5×bk;■7×ci;…;■p×qs)

式中:S(nT)表示(nT)之间的所有素数,J(■)表示(nT)之间的奇数,H(■3×aj;■5×bk;■7×ci;…;■p×qs)表示 (nT)之间的所有奇合数。

在■个奇数中,分别减去■3×a、……、■p×qs个奇合数,即可得到n与T之间的所有素数。(这一计算结果,如用电脑编程,可自动生成。)

以上这两个求素数的公式,第一个可以求出n与T之间所有素数的个数;第二个可以一个不漏地写出n与T之间所有素数的数值。完成了这两方面的内容,这就彻底回答了“在所有自然数列中,素数的分布并不遵循任何有规则的模式”;“素数本身的分布呈无序性变化”;“素数分布并不重要,重要的是它的个数的确定”等一系列相关问题。

由于几百年来人们还没有找到一个“求素数的公式”,所以,我们将以上这两个本质相同的公式统称为“世界上第一个求素数公式(李君池求素数公式)”。

四、求素数公式的应用

一个数学公式,只要这个公式本身是正确的,就一定会有它的有用之处。本文的“李君池求素数个数公式”和“李君池求素数数值公式”(统称为“李君池求素数公式”),如果能够得以推广,更是在数学、金融、科研等方面有着广泛的应用。本文仅举出两个在考试计算方面的应用,来说明这个公式不仅是完全正确的,更是一个有着极高计算效率的简单易学的“简易公式”。

考题1:给你一张100以内的素数表和一个计算器,请找出以下这组数中的素数:

1201 1207 1211 1217 1219 1223 1229 1231 1237 1241 1249 1253 1259 1261 1267 1271 1273 1279 1283 1289 1291 1297

如果我们用一般普通的方法,想在这22个奇数中找出哪几个数是素数,是比较麻烦的。如果是在考场中,更没有时间来一个一个试除。但如果我们采用“李君池求素数数值公式”来寻找,这道题就变得非常容易了。对于公式

S(nT)=J(■)-H(■3×aj;■5×bk;■7×ci;……;■p×qs)

1.取nT的数值为1201至1299;

2.■的数值为49个(在实际计算中,这一过程可以省略);

3.公式中,H后面的内容为需要统计的数值;

4.因为题目所给的数字都不能被3和5整除,所以■3×aj和■5×bk再省略;

5.从■7×ci开始计算,将得到的数值记录下来,与题目比较,是合数的划去;

6.剩下没有划去的即为素数。

计算过程如下:

7×173=1211,7×179=1253,7×181=1267,11×113=1249,

13×97=1261,17×71=1207,17×73=1241,19×67=1273,

23×53=1219,29×43=1247,31×41=1271。

现在,在这22个数中划去其中的10合数(29×43=1247不在这22个数之内),剩下的12个数就是素数。它们是:

1201 1217 1223 1229 1231 1237 1259 1279 1283 1289 1291 1297。

在这个计算中,仅仅只用了11道算式,就从22个奇数中将这12个素数全部找了出来。这种算法,为考试节省了多少时间,不言自明。我们再细细分析一下,可以发现,这11道算式已经找出了1201至1299之间所有的奇合数(能被3和5整除的数除外),当划去这些奇合数之后,剩下的数当然就是素数了。这是毋庸置疑的。

考题2:在一次军事演习中,已知“敌方”的密码是由四个奇素数相乘编成的,并且知道,编写的方法如下:将若干素数按顺序编号,取数时取编号为1、5、9、13四个为一组,2、6、10、14为一组,这样相乘得到一组密码数字。如由5、7、11、13、17、19、23、29、31、37、41、43、47、53,这14个素数,得到公开的密码数为123845和260813,其破译方法为123845=5×17×31×47;260813=7×19×37×53;等。现截获到如下一组数字,在不允许查找素数表的情况下,予以破译。

266,4883,8216,0179 267,2799,7102,9963

269,3973,3826,9903 272,4696,4041,7853

解:本题如果没有一个好的求素数的方法,或者说没有一个好的求素数公式,要想对这样的15位数字进行因式分解,这是很难很难做到的。特别是在不允许查找素数表的情况下,对一些大数进行因式分解,目前还没有什么好的方法。可是,当我们有了求素数的公式之后,要想求出一组不大的素数却是很容易的。对于这些不大的素数而言,利用“李君池求素数公式”就可以很容易予以解答。解答的方法和步骤如下:

1.先找出这组数中的最小数266488382160179和最大数272469640417853;

2.对这两个数进行四次方根的估算,大约是4000和4100;

3.取n=4000和T=4100,运用“李君池求素数数值公式”进行计算;

4.将4000和4100这两个数代入到公式中:

S(nT)=J(■)-H(■3×aj;■5×bk;■7×c;…;■p×qs)

5.我们将后半部分的计算过程写出来,便于大家验证:

3×1335,3×1337, 3×1339,3×1341, 3×1343,3×1345, 3×1347,3×1349, 3×1351,3×1353, 3×1355,3×1357, 3×1359,3×1361, 3×1363, 3×1365; 5×803,5×805, 5×809,5×811, 5×815,5×817; 7×577,7×581, 7×583; 11×367; 13×311,13×313; 17×239,17×241; 19×211;29×139; 31×131;37×109; 61×67.

6.我们再从4001到4099这50个奇数中,画去这35个奇合数,就可以得到15个奇素数,它们是:

4001,4003,4007,4013, 4019,4021,4027,4049, 4051,4057,4073,4079, 4091,4093,4099.

由于题目中所给的四个数字是由16个素数相乘得到的,这里尚缺少一个,这是由于我们估算的误差造成的,不过,缺少一个很好办,用272469640417853÷4013÷4049÷4079=4111,即可将这个素数找出来。如果缺少两个以上,则增大4100,或者缩小4000,用同样的方法就可以了。

7.现在,我们按题目的要求将这十六个素数编号,分成四组,再把得到的计算结果写出来,即是:

266488382160179=4001×4019×4051×4091;

267279971029963=4003×4021×4057×4093;

269397338269903=4007×4023×4073×4099;

272469640417853=4013×4049×4079×4111.

8.在整个计算中,我们只用了35道算式,就将这个非常难解的密码破译成功。

五、结论

本文从“自然数圆形排列图”开始,运用数形相结合的方法,逐步深入,得出了一个比较简略的批量求素数的公式,不仅使得“在n与2n之间究竟有多少个素数”这个问题得到了完整的回答,更进一步,我们彻底回答出了“n与T之间素数的个数以及求素数的数值”。本文所得出的“李君池求素数个数公式”和“李君池求素数数值公式”(统称为“李君池求素数公式”),是世界上第一个“完美的求素数”的公式,它简单、易学、完美、适用,是其他任何一个求素数公式都无法比拟的。有了这个公式,它不仅可以解决大量的数论方面的复杂问题和数论难题,同时,如果将这个公式得以推广,一定能够在数学、金融、科研乃至军事、国防等方面有着更为广泛的应用。

(作者单位 安徽省地矿局327地质队)

上一篇:浅谈训练小学生说话能力的几种形式 下一篇:分数的生成性