获取小于N的素数 优化筛选法的C++实现

2015-07-20 17:06:47 ? 作者: ? 浏览: 3

孪生素数(间隔为2的相邻素数)的相关定理与推论

P1: 当 N 不小于 6 且 N-1 和 N+1 为 孪生素数, 则 N 一定是 6的倍数

T1:当 N 不小于 1 且 N=6x-1 或 N=6x+1 不是素数, 那么 N 一定不是 2和 3的倍数

P2:当N 不小于 5 时,若 N 为素数,那么N mod 6 =1或N mod 6 = 5

T2: 一个大于5的数有且只有整除6余数是 1 或者 5 才有可能是素数

一个数 整除6 的余数 可能是 1,2,3,4,5 但是 余数 为2,3,4的情况下 肯定是合数

具体代码如下

/*
 ***************************************************************
 *    NAME: select_prime.cpp
 *    DESC:
 *  AUTHOR: Liu Dongguo(jealdean@outlook.com)
 * VERSION: 1.0
 *  CREATE: 2015-04-09 13:59:45
 *  LUTIME: 2015-04-10 01:53:40
 *
 * Copyright (c) 2007 - 2015 Abodu.com,Inc. All Rights Reserved
 *
 ***************************************************************
 */

#include 
   
     #include 
    
      #include 
     
       char* GetPrimesLessN(int nSize) //nSize是上限值 { int fLen= nSize; char* flag=new char[fLen];// memset(flag,'y',fLen); flag[0]=flag[1]='s'; //排除0和1 for(int i=2;i*i
      
     
    
   
-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: