当前位置: 首页 > news >正文

埃氏筛法简介

【埃氏筛法简介】
● 埃氏筛,全称埃拉托斯特尼筛法(Sieve of Eratosthenes),是一种用于找出自然数范围内所有素数的经典算法,由古希腊数学家埃拉托斯特尼提出。其核心思想是:从最小的素数 2 开始,逐步筛除每个素数的所有倍数,最终剩下的未被筛除的数即为素数。埃氏筛的核心代码如下所示。

st[0]=st[1]=false;
for(int i=2; i*i<=n; i++) {if(!st[i]) continue;for(int j=2*i; j<=n; j+=i) st[j]=false;
}

该算法的时间复杂度为 O(n log log n),在处理 10^6 及以内的素数查找时效率极高,是数论和算法竞赛中最常用的素数查找方法。 

● 埃氏筛法的核心局限性是重复筛除合数。

j2i

上图中的不同颜色,代表不同批次筛掉的合数。叠加有椭圆的数,代表进行了重复筛除
实际开发中,可将核心代码中 j 的开始位置从 2*i 优化为 i*i 。优化后的核心代码如下所示。

st[0]=st[1]=false;
for(int i=2; i*i<=n; i++) {if(!st[i]) continue;for(int j=i*i; j<=n; j+=i) st[j]=false;
}

由下图易见,j 的开始位置从 2*i 优化为 i*i 优化后,重复筛除的次数明显减少。

jii

● 欧拉筛(线性筛) 通过每个合数仅被其最小质因数筛除的规则,将时间复杂度优化至严格 O (n),使得欧拉筛是处理更大范围素数(如 1e7~1e8)的优选算法。欧拉筛(线性筛)没有埃氏筛法重复筛除合数的核心局限性,

【埃氏筛法代码】
代码来源于“洛谷 P3383”:https://blog.csdn.net/hnjzsyjyj/article/details/157643126

#include<bits/stdc++.h>
using namespace std;vector<bool> st; //isPrime
vector<int> p; //primevoid e_sieve(int n) { //eratosthenes_sievest.assign(n+1,true); //0~nst[0]=st[1]=false;for(int i=2; i*i<=n; i++) {if(!st[i]) continue;for(int j=i*i; j<=n; j+=i) st[j]=false;}for(int i=2; i<=n; i++) {if(st[i]) p.push_back(i);}
}int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n,q,k;cin>>n>>q;e_sieve(n);while(q--) {cin>>k;cout<<p[k-1]<<"\n";}return 0;
}/*
in:
100 5
1
2
3
4
5out:
2
3
5
7
11
*/








【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/157643126
https://blog.csdn.net/hnjzsyjyj/article/details/157615246
https://blog.csdn.net/hnjzsyjyj/article/details/155538927

http://www.jsqmd.com/news/373106/

相关文章:

  • 【读书笔记】《母爱的羁绊》
  • L-704 的 0.00% 偏差
  • 完整教程:Langchain之Agent代理的使用
  • 内部审计备忘录
  • 2026超轻便携掌上型三维扫描仪选购指南 - 十大品牌深度解析 - 匠言榜单
  • 动态ip和静态ip的区别
  • ksuid 类似uuid的唯一id 算法
  • 细聊不错的工程师申报企业,江苏地区哪家费用合理 - 工业推荐榜
  • 2026年天津、北京、河北包装实物设计开发打样公司排名,哪家性价比高? - 工业品牌热点
  • 2025-2026年度AI搜索优化(GEO)源头厂商竞争格局深度分析报告 - 2026年企业推荐榜
  • 2026年生成式引擎优化加盟产品权威推荐。GEO新纪元:选对伙伴,定义未来三年增长曲线 - 2026年企业推荐榜
  • 新东方技工学校企业实训模式好用吗?对就业有啥帮助? - myqiye
  • 总结流量型蠕动泵选购要点,山东流量型蠕动泵生产厂家推荐 - 工业品网
  • 2026年2月关于DeepSeek关键词优化系统竞争格局的深度分析报告 - 2026年企业推荐榜
  • python+springboot+django/flask基于深度学习的音乐推荐系统 - 指南
  • 吉林好用的短视频代运营公司有哪些,性价比高不高? - mypinpai
  • 2026年2月西安孩子视力矫正/近视防控/品牌竞争格局深度分析报告 - 2026年企业推荐榜
  • 中国移动APP开发工程师职位深度解析与面试指南
  • 模板方法模式 (Template Method Pattern)
  • 分析石灰厂产品质量,曌鹏石灰品质达标性价比高靠谱吗 - 工业设备
  • CSDN编辑时如何写上标、下标、同时写上下标?
  • 深度解析安卓软件开发工程师:珠海斯巴克电子设备有限公司职位剖析与技术面试指南
  • 牛客题解-二维斐波那契数列
  • 汽车移动端开发核心技术深度解析与面试指南
  • RAG不是万能的,但没有RAG是万万不能的:8种主流架构全景解析
  • 深入解析服装MES系统移动端开发:岗位要求、技术栈与面试全攻略
  • 从“端到端”到“人到人”:一种以需求直接满足为核心的新一代人机交互范式
  • Linux命令-lscpu(显示有关CPU架构的信息)
  • 2026市面上好用的纤维素抑尘剂厂家排名 - 品牌排行榜
  • 2026市面上道路抑尘剂厂家排名及综合实力评析 - 品牌排行榜