寻找大素数

来源:互联网 发布:推荐系统实战所用数据 编辑:程序博客网 时间:2024/06/05 01:57
本文献给中华人民共和国诞辰60周年 
     (知识产权归中华人民共和国所有)    
                      寻找大素数     作者   李铁钢 
1、 概述 
我们知道到目前为止我们还没有发现一个可以任意写出素数的公式,所以用公式法判断,一个数是不是素数还是一件困难的事。本文就是试图用公式法判断一个数是不是素数。 
2、 基本理论 
看一个公式, 数列  
6N + 1 
6N – 1     其中,N为项数,   N = 1、2、3、……∞                  (公式1) 
(本公式是由另一组公式推导来的,这里不作介绍) 
公式1的基本性质是它包含了除素数2、3以外,自然数中的全部素数和这些素数衍生出的合数。 
写出一组数字,观察一下 
6N + 1 , 7、13、19、25、31、37、43、49、55、61、67、73、79、85、91、97、103…… 
6N – 1 , 5、11、17、23、29、35、41、47、53、59、65、71、77、83、89、95、101…… 
黑体数字为合数,实际探讨中可以把它们写得更多些。 
设H+为6N + 1中任一个数,它可能是素数也可能是合数,假设它是合数时必可以写成下面的形式 
     H+  = P•S    P是一个素数,称为根素数;S可以是一个素数,也可以是合数。 
P的项数设为x ,S的项数设为y ,则有,         H+  = P•S = (6x + 1)(6y + 1) 
同样,根素数在6N – 1,而合数在6N + 1上,     H+  = P•S = (6x - 1)(6y + 1) 
      根素数在6N – 1,而合数在6N – 1上,      H-  = P•S = (6x - 1)(6y - 1) 
化简、整理后,得 
      6xy + x + y = N        (方程1) 
      6xy - x - y = N        (方程2) 
      6xy + x - y = N        (方程3)        N是H+或H- 所在的项数。 
这是一组双曲线方程。 
现在的问题就变成了在数列6N + 1或6N - 1当取定项数N后,看双曲线方程1、2、3有没有至少一组关于x、y的正整数解,如果有,那么N所对应的H就是合数,否则就是一个素数。  
     设xy = A ;  x + y = B   方程1变形为  (6A + 1)+ B  = N + 1    (方程4) 
     设xy = A ;  x + y = B   方程2变形为  (6A + 1)- B  = N + 1    (方程5) 
     设xy = A ;  x - y = E   方程3变形为  (6A + 1)+ E  = N + 1    (方程6)  
3、 步骤 
1) 得到一个尾数是1、3、7、9的正整数后,把它先除于3,不能整除后 
2) 开方,不能开方后 
3) 用6N + 1或6N – 1判断所在的数列,并求出项数N 
4) 如果在数列6N + 1上,就用方程4和方程5,判断。6A + 1取7、13、19…,可以是素数,也可以是合数。由A和B解出x和y,无正整数解的N所对应的H就是一个素数, 
5) 如果在数列6N - 1上,就用方程6判断。  方法同上。 
用以上方法,可以解决以下问题 
a、 可以任意的写出一个很大的合数; 
b、 可以任意的写出一个很大的素数; 
c、 对一个很大的数可以判断是合数还是素数(大数困难些,但是可以完成)。 
篇幅所限,仅谈要点。李铁钢 
                                                         2009年1月25日  
0 0