素数筛模板

简介: 素数筛模板

什么是素数

素数就是除了1和本身,不能被其他数整除的数

模板

#include<bits/stdc++.h>
using namespace std;
#define MAXN 1000000
int c=0;//记录素数数组内素数个数
int prime[MAXN];//保存素数的数组
bool vis[MAXN];//判断某个数是否已经被访问
void euler(int n) {
  for(int i = 2; i <= n; ++i) { //老规矩,遍历区间
    if(vis[i] == false) //如果这个数未被访问,则是素数
      prime[++c] = i;     //将素数保存在素数数组里面,计数+1
    //下面for循环及里面的语句才是这个算法的精髓
    for(int j = 1; j <= c && i * prime[j] <= n; ++j) {
      vis[i * prime[j]] = true;
      if (i % prime[j] == 0)//这句话最重要,精髓!!! 
        break;
    }
  }
}
int main() {
  euler(MAXN);
  for(int i=1;i<=100;i++){
    cout<<prime[i]<<endl;
  } 
}


理解看这个这个大佬的博客素数筛(彻底理解)


目录
相关文章
|
4月前
树状数组模板
树状数组模板
17 0
|
4月前
欧拉函数及模板
欧拉函数及模板
26 1
|
8月前
P4057 [Code+#1]晨跑(数学分析,辗转相除法模板(欧几里得算法))
P4057 [Code+#1]晨跑(数学分析,辗转相除法模板(欧几里得算法))
23 0
|
9月前
背包问题(模板)
背包问题(模板)
31 0
|
12月前
|
人工智能
|
12月前
|
存储 算法 C++
单调栈模板总结及应用
单调栈模板总结及应用
76 0
|
算法
树状数组模板与练习
树状数组模板与练习
80 0
|
项目管理
求组合数(模板)【组合数学】
求组合数(模板)【组合数学】
94 0
求组合数(模板)【组合数学】
|
人工智能 BI C语言
【数论】【模板】
【数论】【模板】
77 0
|
算法
素数筛模板
在判定素数的问题中,随着不断学习,里面的拓展性也在不断地增加。
53 0