如何通过埃氏筛法(Sieve of Eratosthenes)循环过滤实战在秒级提取出海量高质素质数

舞夢輝影

舞夢輝影

2026-05-25

716人浏览

原创

埃氏筛法适用于批量生成指定范围内全部质数,而非单点素性判断;其核心是初始化、筛至√n、从i²开始标记;优化包括跳过偶数和用加法代替乘法。

如何通过埃氏筛法(sieve of eratosthenes)循环过滤实战在秒级提取出海量高质素质数

埃氏筛法本身不是“秒级提取单个高质素质数”的工具,而是一次性批量生成指定范围内全部质数的高效算法。它不适用于实时查某个大数是否为质数,但能在毫秒级完成百万量级范围内的质数预筛——这才是它真正的实战价值。

明确适用边界:筛法 ≠ 单点判断

如果你的目标是“对随机输入的 10 位数快速判素”,埃氏筛不适用,应改用 Miller-Rabin 等概率或确定性素性测试。
但如果你的任务是:
 ✓ 找出 1~10⁶ 内所有质数(用于后续查表)
 ✓ 统计某区间内质数个数(如蓝桥杯填空题)
 ✓ 为欧拉函数、约数和等数论问题预处理质因数
——那埃氏筛就是最直接、最稳、最容易手写不出错的选择。

核心循环逻辑:三步不可省略

以 C++/Python 通用思路为例,关键不在“多快”,而在“不漏、不重、不越界”:

Yellow.ai
Yellow.ai

帮您打造企业级对话式AI平台

下载
  • 初始化布尔数组 is_prime[0..n]:下标即数字,初始 is_prime[0]=is_prime[1]=false,其余全 true
  • 外层循环 i 从 2 到 √n:只需筛到 √n,因为大于 √n 的合数必已被更小的质因子筛过(如 91=7×13,7
  • 内层标记从 i² 开始:i×2, i×3…i×(i−1) 已被更小质数(如 2、3…i−1)筛过;i² 是第一个可能未被筛过的 i 倍数。例如 i=5 时,10、15 已被 2 和 3 标记,25 是首个需由 5 处理的数

实战提速关键:两个真实有效的优化

不是加多线程,也不是换语言,而是两处朴素但效果显著的改动:

  • 跳过偶数(除 2 外):初始化时 is_prime[i] = (i==2) || (i%2==1),外层循环从 i=3 开始,步长为 2。内存减半,速度接近翻倍
  • 内层循环用加法代替乘法:不写 for(j = i*i; j ,而用 <code>j = i*i; while(j ——避免每次计算 i*j,CPU 更友好,尤其在大 n 下差异明显

10⁷ 范围实测参考(主流笔记本)

使用优化后 C++ 实现:
 • 预筛 1~10⁷:约 18–22ms(含内存分配与遍历输出)
 • 存储全部质数(共 664579 个)仅需一个 vector,空间约 2.6MB
 • 后续任意查询 x ∈ [2,10⁷] 是否为质数:O(1) 查表,无延迟

这正是“海量高质素质数”的真正含义:不是单个“高质”,而是整个集合的高质量、高密度、高可用性——筛完即得,查即响应。

相关专题

更多
Selenium WebDriver元素定位与页面操作教程
Selenium WebDriver元素定位与页面操作教程

本专题整理Selenium WebDriver元素定位、XPath、CSS Selector、等待机制、窗口切换、Frame处理、Alert弹窗、Cookie操作和文件上传等核心用法。

2026.08.05

3

26

Selenium Grid分布式测试与并行执行教程
Selenium Grid分布式测试与并行执行教程

本专题整理Selenium Grid架构、远程WebDriver、并行测试、Docker部署、Kubernetes动态Grid、浏览器矩阵和测试环境扩展方法,适合进阶自动化测试团队使用。

2026.08.05

1

18

Selenium常见报错排查与自动化测试稳定性
Selenium常见报错排查与自动化测试稳定性

本专题整理Selenium常见报错、驱动版本问题、元素找不到、点击失败、等待超时、浏览器闪退、脚本不稳定和测试用例维护方法。

2026.08.05

0

17

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

11

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

8

20

墨刀AI进阶技巧
墨刀AI进阶技巧

本合集由PHP中文网精心整理,为您提供墨刀AI核心进阶策略指南。内容涵盖高效提示词写作、原型智能生成与微调、结构化导图制作及行业分析报告输出等实战技巧。助您轻松掌握AI设计工具,大幅提升产品设计与团队协作效率。

2026.08.04

10

14

火山引擎实名认证失败怎么办
火山引擎实名认证失败怎么办

火山引擎实名认证失败可能与证件信息填写错误、姓名或企业信息不一致、证件照片不清晰、营业执照状态异常、手机号验证失败或审核资料不完整有关。本专题整理个人认证、企业认证、资料上传、审核退回、重新提交和认证不通过的常见处理方法。

2026.08.04

5

10

火山引擎域名备案流程详解
火山引擎域名备案流程详解

火山引擎域名备案适合需要在火山引擎云服务器、对象存储、CDN或网站服务上绑定域名的用户参考。本专题整理备案入口、账号实名认证、备案类型选择、主体信息填写、网站信息提交、资料上传、初审核验、管局审核和备案失败排查,帮助用户完成网站上线前的备案流程。

2026.08.04

1

10

火山引擎DNS解析配置步骤
火山引擎DNS解析配置步骤

使用火山引擎DNS解析网站域名时,需要确认域名已完成管理接入,并正确配置服务器IP、CNAME地址或验证记录。本专题整理域名添加、记录类型选择、TTL设置、解析状态检查、备案和访问测试等流程,适合新手搭建网站时参考。

2026.08.04

3

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.4万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 131.8万人学习