zoukankan      html  css  js  c++  java
  • ————————————————素数的快速判断方法————————————————————

    1:   当n>=6   且n-1和n+1是孪生素数的话那么n一定是6的倍数。

    证明:因为n-1和n+1为素数----①

        所以n-1和n+1为奇数----② 

       所以n是偶数是2的倍数--③

       假设n不是3的倍数,得:

    n=3x+1或n=3x+2,

    如果n=3x+1则n-1=3x这和①违背所以n≠3x+1

    如果n=3x+2,则n+1=3(x+1)与①违背

    所以假设不成立,既n是3的倍数又有②结论则n是6的倍数。

    由上面的规律可以推出下面的结论:

    如x>=1且n=6x+1或n=6x+1,那么n一定不是2和3的倍数

    证明。

    因为n=6x-1和n=6x+1,即n=2*(3x)+1或n=3*(2x)-1

    所以n一定不是2和三的倍数

    素数的出现规律:

    当n>=5是,如果n是素数那么n mod 6=1或n mod6=5,即n一定出现在6x(x>=1)的两侧.

    证明:

    当x>=1是,有如下的表示方法:

    ~~~~~~~6x,6x+1,6x+2,6x+3,6x+4,6(x+1),6(x+1)+1,~~~~~

    所以不再6x两侧的数为6x+2,6x+3,6x+4即2(3x+1),3(x2+1),2(2x+2),他们一定不是素数,所以素数出现6x的两侧。

    下面附上  快速判断一个数字是否为素数的方法。

     1 bool isPrime(int num)  
     2 {  
     3     if (num == 2 || num == 3)  
     4     {  
     5         return true;  
     6     }  
     7     if (num % 6 != 1 && num % 6 != 5)  
     8     {  
     9         return false;  
    10     }  
    11     for (int i = 5; i*i <= num; i += 6)  
    12     {  
    13         if (num % i == 0 || num % (i+2) == 0)  
    14         {  
    15             return false;  
    16         }  
    17     }  
    18     return true;  
    19 }  
  • 相关阅读:
    060821流水账
    060721流水账
    060421流水账
    [Tips] 更新oh my zsh
    [Tips] updraftplus备份wordpress
    [Tips] SSH免密登陆
    [Notes] 基于阿里云的SSL在容器化wordpress中部署https服务
    [Tips] wordpress添加文章计数
    [Notes] 容器化部署wordpress
    [Notes] pandas 保存hdf5时numpy array遇到的性能warning
  • 原文地址:https://www.cnblogs.com/A-FM/p/5007910.html
Copyright © 2011-2022 走看看