读《“由‘将1999分解质因数’引发的……”》一文有感

(整期优先)网络出版时间:2009-02-12
/ 2

读《“由‘将1999分解质因数’引发的……”》一文有感

陈敏晓

读了《中小学数学》(小学版)2005年第11期冯桂群老师撰写的“由‘将1999分解质因数’引发的……”,本人有以下三点感想。

一、独家之见

冯老师在寻找1999的质因数时,化了九牛二虎之力,最后发现1999是一个质数,并说:“1999是一个质数,不可以分解质因数,将1999分解质因数,这是一道错题”。笔者认为此说法有误,事实上,1999分解质因数比较特殊,用本身表示罢了。

冯老师在寻找1999的质因数时,先用20以内的质数去除,再用50以内的质数去除,又用100以内的质数去除,最后用1999以内的质数去除。试除过程中,扩大了试除的范围,实际上,44<根号1999<45,只要试除到43就可以了。笔者认为这里做了无效劳动,同时有关数学严密性和严谨性。

“任何一个大于1的整数都可以分解质因数,如果不管质因数的次序,那么分解的结果是唯一的”。“作为特例,把一个质数分解质因数就是用这个质数本身表示”。“设a是大于1的正整数,如果所有不超过根号a的质数都不能整除a,那么a是质数”。摘自中等师范学校数学教科书(试用本)《小学数学教材法》(第一册)和高等师范院校小学教育专业数学教材《初等数论》。其他《初等数论》书籍上也有同样的结论,以上独家之见是事出有因。

二、诸种方法

判断一个正整数是质数还是合数有诸种方法:

1.试除法

要判断正整数a是质数还是合数,只要将2、3、…、≤根号a的所有质数去试除a,如果每一个数都不能整除a,那么a就是质数。比如判断32993是质数还是合数,因为181<根号32993<182,所以用不超过181的所有质数共42个按小到大的顺序依次去试除32993,发现都不能整除32993,所以32993是质数。

冯老师开始用的也是这种方法。用试除法判断一个较大的正整数是质数还是合数是比较麻烦的,需要逐个试除过去,尤其当a相当大时,连≤根号a的所有质数也搞不清楚。

2.BASIC语言编程法

10INPUTa(从键盘上输入一个要判断的正整数a)

20FORI=2TOSQR(a)(在2到a的算术平方根内依次寻找)

30IFa/I=INT(a/I)THEN60(找到一个因数就转到60句)

40NEXTI(将I加1,回到第20句,继续判断I是不是a的因数)

50PRINT“质数”:END(找不到一个因数,打印“质数”,然后结束)

60PRINT“合数”:END(找到一个因数,打印“合数”,然后结束)

冯老师后来用的正是这种方法,在这里我想说的是冯老师采用的第3种思路最为合理,其他两种都扩大了范围。BASIC语言编程法适用于判断较大数,运算速度也快了。

3.查表法

(1)查质数表

要判断一个正整数是不是质数,只要查一下质数表,如果该数在表中能查到,那么便是质数,否则便是合数。目前有100以内,500以内,1000以内,4000以内,5000以内等质数表供人们使用。只要被判断的数不超过质数表的范围,查表是最快的,但是质数表也有范围的限制。

(2)查桑达拉姆数表

1934年,东印度(现孟加拉国)学者桑达拉姆发明了一种判断大于1的奇数是质数还是合数的方法,他按照以下方法构造数表:

第一行为首项是4,公差为3的等差数列:4、7、10、13、16、19…

第二行为首项是7,公差为5的等差数列:7、12、17、22、27、32…

……

第K行为首项是4+3(K-1),公差为2K+1的等差数列

这样一来,便得到一个关于主对角线对称的桑达拉姆表:

4710131619…

71217222732…

101724313845…

132231404958…

162738496071…

193245587184…

…………………

判断方法:把要判断的大于1的奇数减1再除以2,看所得结果是否在表中,若在表中,则这个奇数是合数,否则是质数。比如要判断5979是质数还是合数,因为5979-1=5978,5979&pide;2=2989,根据数表第一行的通项公式an=4+(n-1)×3,2989=4+(n-1)×3,解得n=995,所以2989在数表的第一行中,根据判别法,5979是合数。

查桑达拉姆数表判别一个大于1的奇数是质数还是合数,还是比较麻烦的。

4.充要条件判别法

设n是正整数,则n是质数的充要条件是n|[(n-1)!+1]。这是初等数论中的一个重要定理,一般称为威尔逊定理,该定理告诉我们就理论上说来,决定一个给出的正整数是不是质数的问题已经完全解决。但对于较大数,计算起来困难很大,即便对于一个较小的数来说,计算量也是相当大的。比如n=11,(11-1)!+1=10!+1=10×9×8×7×6×5×4×3×2×1+1=3628801,3628801&pide;11=329891,由判别法知11是质数。

三、大质数的记录不断刷新

尽管理论上判断一个正整数是不是质数的问题已经完全解决。但是,实践中要判断一个数是质数还是合数是一件繁琐的事,特别是要寻找一个更大的质数,更是困难重重。千百年来,人们判定、寻找大质数的探索工作始终没有停止过,大质数的世界纪录也不断刷新。

早在两千多年以前,古希腊的爱拉脱斯特尼就设计了一种把质数从正整数中筛选出来的方法,称为筛法。至今人们仍然使用这个具有重要价值的方法,把质数从正整数中筛选出来,造出了不同范围的质数表。

在寻找大质数的过程中,法国的费马和梅森作出了很大的贡献。费马猜测“对于任何非负整数n,表达式Fn=2的2的n次方+1的值均是质数”。(称Fn=2的2的n次方+1为费马数),后来,数学大师欧拉推翻了这个猜测。

梅森在1644年向世人宣称“当p=2、3、5、7、13、17、19、31、67、127、257时,Mp=2的p次方-1为梅森数),人们发现梅森上述结论有误,1903年,科尔发现当p=67时,M67=193707721×761838257287,故M67不是质数。尽管梅森的结论有误,但他为后人寻找大质数指明了方向。后来,人们发现的大质数都为Mp=2的p次方-1型的。后来又发现M61是质数。

1911年,Power发现了M89是质数,三年后,他又发现了M107也是质数。五十年代后,借助电子计算机,陆续发现了以下梅森质数。

1953年6月,美国加州的数学家罗宾逊利用计算机又找到了五个梅森质数:M521、M607、M1279、M2203、M2281。

1957年,莱素尔找到M3217。

1961年至1963年,赫尔兹等人找到M4253、M4423、M9689、M9941。

1964年,乔利士找到M11213。

1971年,卓加曼找到M19937。

1978年10月30日,年仅18岁的美国加州大学的学生尼奇尔和罗尔又找到M21701。

1979年2月,罗尔找到M23209。

1979年4月,史诺云斯基在尼尔逊的协助下找到M44497。

1983年,史诺云斯基找到M86243、M132049。

1985年,史诺云斯基又找到M216091。

1988年,Colguitt等人找到M110503。

1992年、1993年、1995年,史诺云斯基又分别找到M756839、M859433、M1257787。

1996年末,找到M1398269、M2976211。

1998年1月,美国加州大学学生克拉克森找到M3021377。

1999年6月,找到M6972593。

2001年11月,找到了M13466917。

2003年,又找到了M20996011。

2004年5月,找到M24036583。

值得庆贺的是2005年12月中旬,美国学者史蒂文•布思领导的密苏里州立中央大学研究小组和数学教授柯蒂斯库珀花了多年时间给700台电子计算机进行编程后,发现迄今最大的梅森质数M30402457,共910万位。