其他分享
首页 > 其他分享> > 素数的求取

素数的求取

作者:互联网

筛法求素数(方法一)

const int maxn = 1000001;
int prime[maxn], num = 0;
bool p[maxn] = {false};
void find_prime(int n)
{
		for(int i = 2; i < maxn; i++){
			if(p[i] == false){
			   prime[num++] = i;
			     if(num >= n) break;
			        for(int j = 2 * i; j < maxn; j += i)	[j] = true;	}
		}
}

开平方判断素数(方法二)

    int is_prime(int n){
      for(int i=2;i<=sqrt(n);i++){
        if(n%i==0) return 0;
       }
      return 1;
    }

利用素数的特点来求取素数

素数=6X+1 素数 =6X-1

        bool isPrime(int n){
          if(n==3||n==2) return true;
          //不在6的倍数两侧的一定不是素数
          if(n%6!=1||n%6!=5) return fasle;
          for(int i=5;i<=sqrt(n);i+=6){
          if(n%i==0||n%(i+2)==0) return false;
        }
        return true;
        }

bool isPrime(int n){
if(n==3||n==2) return true;
double n1,n2;
n1=n+1;
n2=n-1;
if(n1%6==0||n2%6==0) return true;
return false;
}

标签:prime,return,int,素数,求取,maxn,true
来源: https://www.cnblogs.com/AlexGong/p/15676505.html