快速求素数表——埃氏筛法与欧拉筛法
埃氏筛法
埃氏筛法原理
素数的定义:素数就是除了1和本身之外没有其他的约数,所以有约数的都不是素数。
因此,埃氏筛法的思想就是:先去掉2的倍数,再去掉3的倍数,再去掉4的倍数,……依此类推,直到最大数小于最后一个标出的素数的平方,那么剩下的序列中所有的数都是素数。
埃氏筛法时间复杂度
O(nloglogn)
埃氏筛法代码【求出1000000以内的素数并且输出n个素数】
#include<iostream>
#include<cstring>
using namespace std;
#define LENGTH 1000000
int is_prime[LENGTH];
int prime[LENGTH];