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

埃拉托斯特尼筛法(埃氏筛)完整解析

一、算法用途

快速找出 2 ~ n 之间的所有素数。

  • 暴力判断每个数:O(nn​)
  • 埃氏筛:O(nloglogn),接近线性,极快。

二、核心思想

  1. 先假设所有数都是素数
  2. 从最小素数 2 开始,把它的所有倍数标记为合数
  3. 取下一个没被标记的数(一定是素数),继续标记它的倍数。
  4. 最后没被标记的,就是素数。

三、完整算法步骤

以筛出 2~n 内素数为例:

  1. 初始化建立数组 is_prime[],长度 n+1,全部设为 trueis_prime[0] = is_prime[1] = false(0、1 不是素数)。

  2. 遍历筛选从 i = 2 开始,只遍历到 √n

    • 如果 is_prime[i] == true,说明 i 是素数。
    • 把 i², i²+i, i²+2i … ≤n 全部标记为 false
  3. 收集结果遍历数组,所有 is_prime[i] == true 的 i 都是素数。


四、关键问题:为什么只需要遍历到 √n?

<
http://www.jsqmd.com/news/567618/

相关文章:

  • Android系统级虚拟定位终极指南:XposedRimetHelper深度技术解析
  • 【新手避坑】Keil5从零到点灯:一站式开发环境搭建与首行代码
  • Graphormer效果对比评测:vs GCN、GAT、GIN在分子回归任务上的表现
  • 深入解析 Android 开发高级工程师:职责、技能与面试精要
  • Linux 想要成为主流桌面操作系统,太难了,因为有这四个痛点在阻碍
  • AI辅助开发winner1300图像处理:用自然语言描述自动生成并行滤波代码
  • TranslucentTB:让Windows任务栏焕发极简美学的轻量工具
  • 正点原子IMX6ULL史诗级新内核Linux7.0移植教程(8) 双网口移植:FEC + KSZ8081/8041 以太网配置
  • 数据库---Day4 数据表的操作
  • 实战复盘——从日志到后门:一次完整的Linux挖矿病毒kswapd0应急响应
  • 从毒蘑菇到食用菌:用YOLO目标检测做个AI采蘑菇助手(实战分享)
  • SQLServer 2008的数据库镜像实施笔记
  • Emby功能增强工具:突破限制的开源媒体服务器解锁方案
  • 2026年上海情侣对戒黄金加工店推荐
  • 安卓逆向实战:用Frida-dexdump轻松脱取内存中的Dex文件(附常见问题解决方案)
  • 保姆级教程:在Ubuntu 16.04上为ARM板子交叉编译Nginx 1.20.0(Linaro工具链+zlib+openssl+pcre)
  • ai辅助开发:让快马平台像origin专家一样理解并美化你的数据图表
  • 如何高效导出并打包SVN变更的Java文件
  • AlmaLinux 9.4 虚拟机里装个‘全家桶’:从开发到摸鱼,一站式软件配置清单
  • 再说 lock-free 编程
  • 智能温室监控系统DIY:基于STM32和DS18B20的多节点温度网络搭建指南
  • Qwen3-32B应用分享:用它辅助编程、学习、办公全场景
  • QMCDecode:3分钟解锁QQ音乐加密格式,免费拥有你的音乐自由
  • PPT制作大解放!这些网站让你一键生成惊艳演示文稿 - 品牌测评鉴赏家
  • springboot+vue基于web的智慧仓库预警管理系统设计系统
  • 从vector的push_back看C++的‘完美转发’:一个emplace_back如何省掉一次临时对象构造
  • Day48正则表达式使用
  • 效率飙升:基于快马ai生成智能vscode python环境管理脚本,实现秒速切换
  • 别再只用COCO了!手把手教你用DUT Anti-UAV数据集搞定无人机小目标检测(附完整下载与配置流程)
  • 2026AI生成PPT网站推荐 - 品牌测评鉴赏家