尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

质数筛-埃氏筛

质数筛-埃氏筛
📅 发布时间:2026/6/19 18:46:05

质数的定义:只能被 1 和它自身整除的数

优势

相比于暴力的筛法,埃氏筛的算法效率要快不少,虽然比起欧拉筛来说,埃氏筛的优化仍然有待提高。但比起欧拉筛,埃氏筛的理解难度要小不少。

埃氏筛介绍

埃氏筛的时间复杂度在O()

我们可以想到一点,任何数的倍数都不可能为质数,所以我们可以因此来抹去一些与一个数倍数相关的数。其实就是空间换时间的想法

代码部分

暴力筛

#include<iostream> using namespace std; int main(){ int n; cin >> n; //判断 n 是不是质数 int flag = 1; if(n == 1){ flag = 0; }else{ for(int i = 2 ; i < n ; i++){ if(n % i == 0) flag = 0; } } //是质数输出yes,反之输出no if(flag) cout << "yes" << endl; else cout << "no" << endl; return 0; }

当然,在实际的使用中,你也可以通过打表的方法来提高筛法的效率。当然,在算法比赛中,很多时候你打出来的表不一定管用。

循环也可以把遍历的条件改成 i <=, 这样也可以提高效率

埃氏筛

#include<iostream> #include<cstring> using namespace std; const int N = 1e5; int flag[N]; int main(){ int n; cin >> n; //把flag全初始化为 1(除了 0 和 1) memset(flag , 1 ,sizeof(flag)); flag[0] = 0; flag[1] = 0; //开始筛,质数的倍数全都打上标记 for(int i = 2 ; i * i <= n ; i++){ for(int j = i * 2 ; j <= n ; j += i){ flag[j] = 0; } } //输出 for(int i = 0 ; i < n ; i++){ if(flag[i]) cout << i << ' '; } cout << endl; return 0; }

相关新闻

  • Linly-Talker能否用于博物馆文物解说机器人?
  • Linly-Talker能否用于法院普法宣传教育?
  • 小笔记

最新新闻

  • 旧书店
  • 沧州市黄金首饰回收正规门店推荐,附各区回收网点联系方式 - 三大殿
  • 大兴安岭地区黄金回收去哪儿好?整理了5家靠谱实体店地址电话 - 三大殿
  • 承德市今日黄金回收价格多少?本地5家口碑门店报价参考 - 马刺总冠军
  • 2026 正规备案收金店,称重透明结算无隐藏扣费 - 讯息早知道
  • 贺州市黄金回收实体店怎么选?这份清单帮你货比三家 - 开始就结束

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号