我是靠谱客的博主 独特火龙果,这篇文章主要介绍筛质数——欧拉筛(线性筛)欧拉筛(线性筛)板子题目,现在分享给大家,希望可以做个参考。

筛质数有两个板子,埃氏筛和欧拉筛,欧拉筛是线性的,背一个欧拉筛就够了

欧拉筛(线性筛)板子

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e6+10;
int prim[N]; //存储质数
bool vis[N]; //标记合数
int cnt; //总个数
int main(){
int n;
cin >> n;
for(int i = 2; i <= n; ++i){//质数从2开始遍历
if(!vis[i]) prim[cnt++] = i; //i不为合数时,放进质数数组
for(int j = 0;1ll*i*prim[j] <=n ; ++j){ //标记当前数i X 之前筛出来的质数 得到的合数
vis[i*prim[j]] = 1;
if(i%prim[j]==0) break; //整除中断
}
}
cout << cnt << endl;
return 0;
}

题目

题目难度
Acwing.筛质数模板题
洛谷.【模板】线性筛素数模板题

最后

以上就是独特火龙果最近收集整理的关于筛质数——欧拉筛(线性筛)欧拉筛(线性筛)板子题目的全部内容,更多相关筛质数——欧拉筛(线性筛)欧拉筛(线性筛)板子题目内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(123)

评论列表共有 0 条评论

立即
投稿
返回
顶部