|

楼主 |
发表于 2024-8-19 19:31
|
显示全部楼层
本帖最后由 yangchuanju 于 2024-8-19 19:35 编辑
如何快速寻找梅森数的素因子
已知知道,所有梅森数都是模8余7的正整数(梅森素数2^2-1=3除外);
每一个梅森数如果是合数,它的素因子及复合因子都是2kp+1型的正整数;
(每一个梅森素数也可表示成2kp+1形式的正整数,如梅森素数2^5-1=31=2*6*5+1,2^7-1=127=2*9*7+1)
所有梅森数之中都不含有幂因子,即没有平方梅森因子,更没有立方梅森因子,……;
各个梅森数的素因子(及梅森素数)互不相同,即没有某个素数p即是梅森数Mp1的素因子,
又是其它梅森数Mp2的素因子的现象,如素数23是梅森数2^11-1的一个素因子,它不再是其它梅森数的素因子。
梅森数的指数都是素数,除2以外可分成模4余3,模4余1两大类。
要找到某个梅森数Mp=2^p-1的素因子可用不大于Mp平方根的正整数从小到大逐个试除,直到某个正整数能够整除,它便是那个梅森数的一个最小的(素)因子;
由于偶数都不是梅森数的因子,故试除过程中舍弃所有偶数,只用奇数试除即可;
又由于奇合数一会是梅森数的最少因子,故试除过程中只用不大于Mp平方根的素数从小到大逐个试除,直到某个小素数p1能够整除,它便是那个梅森数的一个最小的素因子p1;
找到某个素因子p1后,将Mp除以这个素因子p1,再用不小于p1、不大于Mp/p1平方根的素数从小到大逐个试除,直到某个素数p2能够整除,它便是那个梅森数的第2素因子p2;
找到它的素因子p1、p2后,如果Mp/(p1*p2)还是合数,可将Mp除以p1*p2,再用不小于p1*p2、不大于Mp/(p1*p2)平方根的素数从小到大逐个试除,直到某个素数p3又能够整除,它便是那个梅森数的第3素因子p3;……
直到Mp/(p1*p2*p3*……)是素数时为止。
由于梅森数的素因子不包括所有类型的素数,只是各种素数中的某些类型,故只用可能是梅森数因子类型的素数试除即可。
已知对于模4余3的梅森数,它们的各个素因子减1与梅森数指数的比分别是2,8,10,16,18,24,26,32,34,……8k,8k+2;
对于模4余1的梅森数,它们的各个素因子减1与梅森数指数的比分别是6,8,14,16,22,24,30,32,……8k-2,8k。
故对于各类梅森数在试除过程中,不必用不大于Mp平方根的素数从小到大逐个试除,
只需用2p+1,8p+1,10p+1,16p+1,18p+1,……8kp+1,(8k+2)p+1
或6p+1,8p+1,14p+1,16p+1,……(8k-2)p+1,8kp+1试除即可。
对于模4余3的梅森数Mp=2^p-1,如果2p+1也是素数,这个2p+1型素数一定是那个梅森数的一个(最小)素因子;
如梅森数2^39971-1的最小素因子是79943,第2素因子是什么至今无人知晓;梅森数2^39983-1的最小素因子是79967,第2素因子是什么至今无人知晓;……
对于模4余1的梅森数Mp=2^p-1,不论2p+1是素数还是合数,这个2p+1型奇数都不是那个梅森数的素因子。
如梅森数2^39953-1、2^39989-1的指数都是热尔曼素数,2p+1都是素数,但它们不是对应梅森数的素因子;
至今只知这两个梅森数是合数,但没有找到一个素因子。
对于指数是模4余3型梅森数,当8p+1,10p+1,16p+1,18p+1,……8kp+1,(8k+2)p+1是素数时,它们不一定是那个梅森数的素因子;
对于指数是模4余3型梅森数,当6p+1,8p+1,14p+1,16p+1,……(8k-2)p+1,8kp+1是素数时,它们不一定是那个梅森数的素因子。
|
|