素数一般筛法(埃拉托斯特尼筛法)

将bool数组设为true,bool[0],bool[1]设为false,然后从2开始,每找到一个素数就将它的倍数筛为false。从2一直筛到MAXN的开平方数即可。(埃拉托斯特尼筛法比较好理解,不理解可以自行百度百科,但这种筛法会重复筛选,所以效率不是最高的)
附上代码

#include //求第1226564个素数
#include 
#define MAXN 100000000
#define t 1226564
using namespace std;
bool flag[MAXN];
int num[MAXN];
int cnt = 1;
void temp(){
    flag[0] = false;//0不是素数
    flag[1] = false;//1不是素数
    for(int i = 2;i*i

你可能感兴趣的:(素数一般筛法(埃拉托斯特尼筛法))