我发现了筛法的计算公式(最后稿)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我发现了筛法的计算公式
孟庆馀[江苏连云港]
2010年5月
[摘要]:
笔者在探索中,发现了有关素数与合数关系的三条主要规律:
1、区段(区域)性的规律。
2、逐项相除四舍五入的规律。
3、随从数的规律。
根据这三条规律推导出一个公式, 它可以计算出任一已知素数后边紧跟的那个素数和任意大的一个自然数之前共有多少个素数的问题。
这个公式是:
m p =
2N -N [ (211p p +311p p -3211p p p ±…±13211-n p p p p Λ)+ ( )1111132131211-±±++-n p p p p p p p p p ΛΛ(-n p 1)]+(1-n )
[关键词]:
筛法公式、逐项相除、四舍五入、区段、随从数。
[正文]:
笔者在多年的探索中,发现了有关素数与合数关系的一些规律,根据这些规律找到了一个可以对埃拉多斯染尼氏(Eratosthenes )筛法进行计算的公式,即“筛法计算公式”(它包括计算素数和计算奇合数两个公式),计算素数的公式也可以称为“素数公式"。
给素数找出一个通项表达式,即已知任一素数后边紧跟的那个素数的公式,这是一个缠绕着数学家的世界难题,时至今日都没有解决。
笔者的这个公式能较好地解决任一已知素数后边紧跟的那个素数的问题。
一、“筛法计算公式”(用于计算素数)
m p =
2N -N [ (211p p +311p p -3211p p p ±…±13211-n p p p p Λ)+ ()1111132131211-±±++-n p p p p p p p p p ΛΛ(-n
p 1)]+(1-n ) …(1) 式中m p 为1~N 数列中素数个数;N 为任意大的自然数(2n p ≤N <21+n p )
;n p p p p ,,,,321K 为素数,其中:1p = 2,2p = 3,3p = 5,…,6p = 13,…;n ≥2 。
计算(1)式应先根据N 的值(1+≤n n p N p <),来确定n 的值,再根据n 值确定公式的大小(项数),最后进行计算。
计算时将N 乘以括弧内各项,然后
一项一项....(121--n 次)相除,除不尽时必须四舍五入....
取整数,最后进行加减,
得出的结果是素数个数。
根据定理2确认是否是素数,是第几个素数和1~N 数列中共有多少个素数。
这里n 为已知素数序号,m p 为未知(要计算的)素数个数,m p =n ,当求出m p 值后即应以n 代表素数序号。
二、“筛法计算公式” 推导的依据和过程
我们知道任何数学公式的发现、推导都离不开该数列自身固有的规律。
“先从少数的事例中摸索出规律来,再从理论上来证明这一规律的一般性,这是人们认识客观法则的方法之一。
”华罗庚《数学归纳法》。
那么素数序列到底有什么规律呢? 笔者的回答是没有任何规律。
U. 杜德利在《基础数论》中写得清楚:“素数却如此杂乱无章地散布在整数中,甚至原因也可能说不清楚"。
[德]汉斯. 拉德枚彻、[德] 奥托. 托普利茨在合著的《数学欣赏》中写到:“较自然的方法是试求任一已知素数后边紧跟的那个素数。
但是由于素数组成的极端的无规则性,所作的这种尝试最后都失败了。
" 在素数序列上找不到规律, 那么可否从合数序列上去寻找规律呢?因为素数与合数是相辅相成、相互依存的。
笔者通过摸索发现合数序列是有规律的, 我们可以通过合数的规律来研究、了解素数及其与合数的关系。
合数的有规律与素数的无规律好比是筛法的筛子,筛眼的大小我们用已知素数来编是有规律的,而且从筛眼大的到筛眼小的我们可以编n 种,筛掉的合数是有规律的(根据筛眼的大小知道),而留在筛子里的素数是没有规律的一样。
笔者通过大量事例摸索出三条主要规律:
第一、区段(区域)性的规律。
合数随着区段的增加其规律也在变化,在同一区段内合数的规律是一样的。
区段是以前一个素数的平方到后一个素数的平方来划分。
用符号 2n p ≤N <21+n p 或
1+≤n n p N p <表示。
这是奇合数最基本的一条规律。
这个规律两千多年前已经被人们发现。
第二、逐项相除四舍五入的规律。
在两数相除时一定要一项一项....相除, 除不尽时必须而且只能四舍五入取整......数.。
这是关键性的一条规律。
第三、随从数的规律。
(注:“随从数" 也叫后继数,就是紧接在某一个自然数后面的一个数。
例如,1的随从是2,2的随从是3,3的随从是4 等等。
)
当我们用“筛法公式” 计算奇合数时所得出的值是随从数的,那么这个随从数必定是奇合数;如果用“筛法公式”计算素数时,所得出的值是随从数的,那么这个随从数必定是素数。
这是判断性的一条规律。
上面这三条规律是推导、产生“筛法计算公式”的重要基础和依据。
两千多年前埃拉多斯染尼氏(Eratosthenes )根据第一条规律发现了筛法,而今天笔者根据第二、三条規律找到了筛法的计算公式。
现在就上面三条规律来分析一下合数的规律及其与素数的关系。
因为偶数中只有2是素数,其余都是合数,为简便明了、少费笔墨,这里我们只讨论奇数、奇合数和素数。
从第二个素数3的平方9 起,是3 的整倍数的奇数有:9, 15, 21, 27, …… 从第三个素数5的平方25起,是5 的整倍数的奇数有:25, 35,45, 55, …… 从第四个素数7的平方49起,是7 的整倍数的奇数有:49, 63, 77, 91, ……
从上面3,5,7 的整倍数看,我们发现了合数的第一个规律即区段性的规律。
每增加一个区段,就要增加计算一个素数的倍数,我们将增加的这个素数序号,同时也作为这个区段的区号。
下面计算几个区段的奇数来看看奇合数的规律: 一区段 因为公式规定n ≥2,即必须从二区段起计算, 所以这个区段不必计算。
二区段 只计算第二个素数3的倍数的个数。
正整数N ≥9 而<25,即从9~23。
在这个区段内用2×3(乘以2是为了将3的偶数倍数剔除, 下同)分别除以各个奇数,除不尽时必须四舍五入....
取整数得到: 〔9〕=2,〔11〕=2,〔13〕=2,〔15〕=3,〔17〕=3,〔19〕=3,〔21〕=4,〔23〕=4。
(注:〔〕号中的数为奇数,等号后面的数为奇数除以2×3四舍五入取整所得的值。
)
上面得到的值是奇数中素数3 的倍数的个数 (含3在内),也是奇合数的个数,而3 是素数不是奇合数,必须减去1。
以m s 代表奇合数个数。
用公式)12(3
2--⨯=N m s 计算得到: 〔9〕=1,〔11〕=1,〔13〕=1,〔15〕=2,〔17〕=2,〔19〕=2,〔21〕=3,〔23〕=3。
三区段 增加计算第三个素数5的倍数的个数。
N ≥25 而<49,即从25~47,在这个区段内不但要计算3 的倍数,还要计算5 的倍数。
这里我们发现有些奇数既是3 的倍数,同时又是5 的倍数,如45=3×3×5,如果不把它减去,计算的结果就会比实际个数多,所以必须减去2×3×5的倍数。
这个区段的公式是:
计算时一定要一项一项....
先除(不能先通分后加减再除),除不尽时必须而且只能四舍五入....
取整数,然后加减。
这是奇合数的第二个规律即逐项相除四舍五入的规律。
用上式计算得到:
〔25〕=4,〔27〕=5,〔29〕=5,〔31〕=5,〔33〕=6,〔35〕=7,〔37〕=7, 〔39〕=8, 〔41〕=8,〔43〕=8,〔45〕=9,〔47〕=9。
四区段 再增加计算第四个素数 7 的倍数的个数, N ≥49 而<121,即从49~119,在这个区段里我们不仅要分别计算3,5,7 的倍数,同时还要减去重复计算的3、5 的倍数,3、7 的倍数和5、7 的倍数。
这里我们又发现,还有些奇数同时是3、5、7 三个数的倍数,如105=3×5×7,必须再加上2×3×5×7 的倍数,否则将多减了。
这个区段的公式是:
计算得:
〔49〕=10,〔51〕=11,〔53〕=11,〔55〕=12,〔57〕=13,〔59〕=13, 〔61〕=13,〔63〕=14,〔65〕=15,〔67〕=15,〔69〕=16,〔71〕=16, 〔73〕=16,〔75〕=17,〔77〕=18,〔79〕=18,〔81〕=19,〔83〕=19, 〔85〕=20,〔87〕=21,〔89〕=21,〔91〕=22,〔93〕=23,〔95〕=24,
〔97〕=24,〔99〕=25,〔101〕=25,〔103〕=25,〔105〕=26,〔107〕=26, 〔109〕=26,〔111〕=27,〔113〕=27,〔115〕=28,〔117〕=29,〔119〕=30。
五区段以后以此类推,不必一一计算了。
从2、3、4三个区段计算的结果发现,计算出的值是依照奇合数的个数递增的(蓝色数字)。
当一个奇数N 是奇合数时其值一定比前面一个奇数(N -2) 的值多1。
尽管三个区段的计算公式不一样,但是计算出的奇合数个数却是不分区
段、序号连贯、依自然数递增的。
这是奇合数的第三个规律,即随从数的规律。
根据随从数的这个规律总结得出:
定理1 当〔N 〕= a + 1(a 为自然数且≥1),而〔N - 2〕= a ,则①N 必定是奇合数,② N 是第(a +1)个奇合数; ③1~N 数列(含N )共有(a +1)个奇合数。
现在综合上面三个区段的公式推导出一个完整地用于计算奇合数的“筛法计算公式”:
m s =N [ (
211p p +311p p -3211p p p ±…±13211-n p p p p Λ)+ ()1111132131211-±±++-n p p p p p p p p p ΛΛ(-n
p 1)])1--n ( …(2) (2)式中m s 为1~N 数列奇合数个数;N 为任意大的自然数(2n p ≤N <21+n p )
; n p p p p ,,,,321K 为素数,其中:1p = 2,2p = 3,3p = 5,…,6p = 13,…;n ≥2 。
计算(2)式应先根据N 的值(1+≤n n p N p <),来确定n 的值,再根据n 值确定公式的大小,最后进行计算。
计算时将N 乘以括弧内各项,然后一项一项(121--n 次)进相除,除不尽时一定要四舍五入....
取整数,最后进行加减。
得出的结果是奇合的数个数,根据定理1确认是否是奇合数,是第几个奇合数和1~N 数列中共有多少个奇合数。
计算奇合数的公式找到了,计算素数的公式如何解决呢﹖下面我们来分析一下奇合数与素数的关系,即奇合数个数与素数个数的关系。
我们从整数性质知道:
正整数= 奇数+ 偶数=1+素数+ 奇合数+ 偶合数。
奇数中1 既不是素数也不是合数,而偶数中2 是唯一的素数。
为了方便计算,我们将1 和2 对调统计,
则有:奇数= 奇合数+ 素数。
公式是:p s m m N +=+2
1 (为方便计算,N 为奇数时加1,如不加1,相除时必须四舍五入取整数),代入上面三个区段的公式分别得到如下计算素数的公式是:
( 9≤N <25)
)13()5
321521321(21-+⨯⨯-⨯+⨯-+=N N m p (25≤N <49)
(49≤N <121)
现在用上面计算素数的公式分别计算三个区段内所有奇数的值,看看与计算奇合数个数有什么不同:
〔9〕=4, 〔11〕=5,〔13〕=6,〔15〕=6,〔17〕=7,〔19〕=8,〔21〕=8,
〔23〕=9,〔25〕=9,〔27〕=9,〔29〕=10,〔31〕=11,〔33〕=11,〔35〕=11,
〔37〕=12,〔39〕=12,〔41〕=13,〔43〕=14,〔45〕=14,〔47〕=15,〔49〕=15,〔51〕=15,〔53〕=16,〔55〕=16,〔57〕=16,〔59〕=17,〔61〕=18,〔63〕=18,〔65〕=18,〔67〕=19,〔69〕=19,〔71〕=20,〔73〕=21,〔75〕=21,〔77〕=21,〔79〕=22,〔81〕=22,〔83〕=23,〔85〕=23〔87〕=23,〔89〕=24,〔91〕=24,〔93〕=24,〔95〕=24,〔97〕=25,〔99〕=25,〔101〕=26,〔103〕=27,
〔105〕=27,〔107〕=28,〔109〕=29,〔111〕=29,〔113〕=30,〔115〕=30, 〔117〕=30,119〕=30。
很明显计算素数与计算奇合数刚好相反,所得出的值是依照素数个数递增的(黑色数字)。
尽管三个区段的计算公式不一样,但是计算出的素数个数却是不分区段、序号连贯、依自然数递增的。
根据这个规律,总结出:
定理2 当〔N 〕=b +1 (b 为自然数且≥1),而〔N -2〕= b ,则①N 必定是素数;② N 是第(b +1)个素数;③ 1~N 数列(含N )共有(b +1)个素数。
因为p s m m N +=+2
1代入(2)式,所以得到用于计算素数的(1)式(略)。
三、对 “筛法计算公式" 中定理的证明
为了证明定理1 和定理2,这里先引用自然数的部分性质和三个定义: 自然数就是指: 1,2,3, … 这些数所组成的整体, 它有以下性质:
①1 是自然数;
②每一个确定的自然数a ,都有唯一的一个随从数a' ,a'也是自然数; ③1 不是任何自然数的随从, 即1≠ a'。
定义1 设a 、b 是整数, b ≠o 。
如果有一个整数q, 可使a =bq , 那么b 叫做a 的因数, a 叫做b 的整倍数, 有时也说 b 能整除a 或a 能被b 整除; q 叫做b 的整倍数的个数, 也可以说a 中有q 个b 的整倍数, 或者b 的整倍数有q 个。
引理1 若b | a 则b 的整倍数的个数q 在整数中依自然数递增。
证明: 当q = 1时 , 则a =b , 即a 1 =1b ,当q 分别等于2,3,4,…n 时,则a 2=2b , a 3=3b,a 4=4b ,…, a n =nb 。
引理得证
引理2 如果a 、b 是两个正整数, b ≠0,则必有且仅有两个整数q 、r ,
可使a =bq +r ( -2b < r ≤2
b ) 成立。
证明(略)
定义2 一个大于1 的正整数a ,只能被1 和a 本身整除,不能被其他正整数整除,那么a 就叫做素数(也叫质数)。
定义3 一个正整数a 除了能被1 和a 本身整数以外,还能被另外的正整数整除,那么a 就叫做合数 (也叫复合数)。
由素数与合数的定义可知,全体正整数可分为三类:
(1)1 这个数;
(2)全体素数;
(3)全体合数。
合数又分为奇合数和偶合数。
引理3 从第二个区段起(n ≥2), 每个区段(2n P ≤N <21+n P )的第一个N 一
定是奇合数。
证明: 因为从第二个区段起的第一个N =2n P =n n p p ,当n ≥2时的素数都是奇素数,而奇数×奇数=奇数,依据定义3 所以N 一定是奇合数 。
现在用实例来证明定理1
先用3 除以正整数数列(除不尽时保留1 位小数)分别得:
〔1〕=0.3,〔2〕=0.6,〔3〕=1,〔4〕=1.3,〔5〕=1.6,〔6〕=2,〔7〕=2.3,
〔8〕=2.6,〔9〕=3,〔10〕=3.3,〔11〕=3.6,〔12〕=4,〔13〕=4.3,〔14〕=4.6, 〔15〕=5,〔16〕=5.3,〔17〕=5.6,〔18〕=6,〔19〕=6.3,〔20〕=6.6,
〔21〕=7,〔22〕=7.3,〔23〕=7.6,〔24〕=8, …
上面除尽的是3 的整倍数,除不尽带小数的为3 的分倍数。
为求得奇合数,必须用2×3 除以正整数, 将3 的偶数倍数剔除, 因为偶数乘奇数得偶数,而偶数除以奇数是除不尽的,所以必须根据引理 2 在除不尽时四舍五入取整数,否则不但偶数剔除不了,反而将奇数全部都剔除了。
用2×3 除以正整数,除不尽时必须四舍五入取整数后得:
〔1〕=0,〔2〕=0,〔3〕=1,〔4〕=1,〔5〕=1,〔6〕=1,〔7〕=1,〔8〕=1,〔9〕=2,〔10〕=2,〔11〕=2,〔12〕=2,〔13〕=2,〔14〕=2,〔15〕=3,〔16〕=3,〔17〕=3, 〔18〕=3,〔19〕=3,〔20〕=3,〔21〕=4,〔22〕=4,〔23〕=4,〔24〕=4,…
从上面规律来看,整数中计算出的值凡是随从数的,都是3的整倍数(不含偶数倍数,因为偶数倍数已被剔除),与随从数同值的数都是3的分倍数,在3的整倍数中, 3虽然是3的整倍数,但是根据定义2知道它是素数,为此必须减去一个倍数。
现在再将三、四区段中素数5、7 的整倍数和分倍数的正整数一起列出如下:
〔1〕=0,〔2〕=0,〔3〕=0,〔4〕=0,〔5〕=0,〔6〕=0,〔7〕=0,〔8〕=0,〔9〕=1,〔10〕=1,〔11〕=1,〔12〕=1,〔13〕=1,〔14〕=1,〔15〕=2,〔16〕=2,〔17〕=2, 〔18〕=2,〔19〕=2,〔20〕=2,〔21〕=3,〔22〕=3,〔23〕=3,〔24〕=3,〔25〕=4, 〔26〕=4, 〔27〕=5 , 〔28〕=5, 〔29〕=5, 〔30〕=5, 〔31〕=5, 〔32〕=5, 〔33〕=6, 〔34〕=6, 〔35〕=7,〔36〕=7, 〔37〕=7, 〔38〕=7, 〔39〕=8, 〔40〕=8, 〔41〕=8, 〔42〕=8, 〔43〕=8, 〔44〕=8,〔45〕=9, 〔46〕=9, 〔47〕=9,〔48〕=9, 〔49〕=10,〔50〕=10, 〔51〕=11,〔52〕=11,〔53〕=11,〔54〕=11,〔55〕=12,〔56〕=12,〔57〕=13,〔58〕=13,〔59〕=13,〔60〕=13,〔61〕=13,〔62〕=13,〔63〕=14,〔64〕=14,〔65〕=15,〔66〕=15,〔67〕=15,〔68〕=15,〔69〕=16,〔70〕=16,〔71〕=16,〔72〕=16,〔73〕=16,〔74〕=16,〔75〕=17,〔76〕=17,〔77〕=18,〔78〕=18,〔79〕=18,〔80〕=18,〔81〕=19,〔82〕=19,〔83〕=19,〔84〕=19,〔85〕=20,〔86〕=20,〔87〕=21,〔88〕=21,〔89〕=21,〔90〕=21,〔91〕=22,〔92〕=22,〔93〕=23,〔94〕=23,〔95〕=24,〔96〕=24,〔97〕=24,〔98〕=24,〔99〕=25,〔100〕=25,〔101〕=25,
〔102〕=25,〔103〕=25,〔104〕=25,〔105〕=26,〔106〕=26,〔107〕=26, 〔108〕=26,〔109〕=26,〔110〕=26,〔111〕=27,〔112〕=27,〔113〕=27, 〔114〕=27,〔115〕=28,〔116〕=28,〔117=〕29,〔118〕=29,〔119〕=30。
我们再将数值是随从数的整数挑出如下:
1=〔9〕,2=〔15〕,3=〔21〕,4=〔25〕,5=〔27〕,6=〔33〕,7=〔35〕,
8=〔39〕9=〔45〕,10=〔49〕,11=〔51〕,12=〔55〕,13=〔57〕,14=〔63〕,
15=〔65〕,16=〔69〕,17=〔75〕,18=〔77〕,19=〔81〕,\\20=〔85〕, 21=〔87〕,22=〔91〕,23=〔93〕,24=〔95〕,25=〔99〕,\\26=〔105〕, 27=〔111〕,28=〔115〕,29=〔117〕,30=〔119〕。
看!我们把三个区段内的30个奇合数,从1到30按顺序全部挑出来了。
根据自然数的性质和定义3、引理3,可以证明运用奇合数计算公式计算出值,凡是随从数的,一定是奇合数。
即当〔N 〕= a + 1(a 为自然数且≥1),而〔N - 2〕= a ,则①N 必定是奇合数,② N 是第(a +1)个奇合数; ③1~N 数列(含N )共有(a +1)个奇合数。
定理2 的证明只需根据整数性质和引理1 即可以证得。
四、关于“筛法计算公式" 的说明
有两千多年历史的埃拉多斯染尼氏筛法,都是筛去 (划掉) 合数, 留下素数,而笔者的“筛法计算公式”可以:⑴计算出素数或奇合数;⑵是第几个素数或奇合数; ⑶在这个数之前共有多少个素数或者奇合数。
“筛法计算公式”从理论上讲可以对任意大的自然数进行计算。
但是,当数字很大时,手工计算起来计算起来就不那么容易,由于该公式比较复杂,当计算一个很大的数如N (2n P ≤N <21+n P ),就要进行(121--n )项除法运算,手工计算起来非常繁琐、费时。
但是,在计算机高度发达的今天,将这个公式编制成计算机程序,在计算机上计算就容易多了。
最近我请本单位的一位编程人员将(1)式编制成C 程序,在计算机上计算起来太简便了。
例如,输入一个奇数9403,计算机会在几分钟内从1 至9403 按顺序、一个不多、一个不少、一个不错的计算并显示出9403 以前的所有1163 个素数。
然而要计算一个充分大的自然数时, 家用计算机就无能为力了。
为了解决这个问题, 笔者设想将 (1) 式改用对数来编制程序, 这样就能计算更大的自然数了。
1971 年到2008 年美国、英国、德国的科学家、计算机专家、数学爱好者,他们先后算出的最大素数是:
1,21,21,21,2121,21212431126093715666725964951240365837568392160914449719937--------,,。
但是他们只知道这几个数是素数,并不知道是第几个素数,也不知道在这几个素数中间还有多少个素数。
如果使用“筛法计算公式”用对数编制的程序,就有可能算出1243112609-这个数以内的全部素数以及 (1243112609-) 这个数是第几个素数。
有了“筛法计算公式”及其用对数编制的程序,在大型计算机上进行运算,参与国际素数搜索项目" 互联网梅森素数大搜索"(GIMPS)将变得容易多了。
另外利用这个公式也可以对数论中的一些难题,如哥德巴赫猜想、素数分布、素数个数π(x )和梅森素数等等进行研究。