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

欧拉筛(线性筛)——算法笔记

欧拉筛是一种筛选素数算法,也叫线性筛,因为他的时间复杂度很优秀,能做到o(1),而一般的暴力判断方法要到o(n)。

作为一种基础算法,代码不长,但是其中蕴含着一种很精妙的数学思想,即素数的整数倍一定不是素数。

要保证时间严格线性,我们还应当在筛选的时候注意重复筛选的次数,做到不重不漏,这里又有一个巧妙的判断方式:只判断这个数的最小质因数,这样就能达到一个数只判一次。

#include<iostream> using namespace std; int a[100]={1,1}; int b[100]={0}; int main(){ int n; cin>>n; int cnt=0; for(int i=2;i<=n;i++){ if(!a[i]) { b[++cnt]=i; for(int j=2;j<=cnt;j++){ if(j*b[i]>n) break; a[j*b[i]]=1; if(i%b[j]==0) break; } } } }

懒得加注释了,只是自己的笔记,csdn上有更多讲得很好的文章,可以多看看。

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

相关文章:

  • 协程异常无处遁形,打造坚不可摧的异步处理架构(稀缺实战经验分享)
  • 【PHP 8.6扩展开发终极指南】:掌握高性能扩展编写核心技术
  • R vs Python:模型预测结果不一致?一文掌握交叉验证黄金标准
  • 影刀RPA促销大杀器!亚马逊促销活动自动创建,效率暴增1500% [特殊字符]
  • Leetcode刷题日记12(111-120)
  • AgentScope Java 1.0 发布:赋能企业级智能体应用开发与生产落地
  • 实用指南:增强现实与物联网融合在智慧城市交通管理中的智能优化应用探索
  • 助力在线教学提质增效,“魔果云课”以核心功能直击教师痛点
  • 跑酷游戏 开始场景 资源加载 cocos3.8.7
  • 你不知道的纤维协程调度内幕:90%开发者忽略的优先级抢占机制
  • 微服务负载均衡学习 - 详解
  • 阿里云函数计算 AgentRun:解决企业级 Agent 生产化落地痛点
  • 【高分文章必备技能】:如何用R语言绘制专业级空间转录组热力图?
  • Cursor 实战指南——Plan、Command、Rule 三大核心功能深度解析
  • 十九、自己搭建frp实现内网穿透
  • stdin输入流+stdout输出流+stderr错误流 - jerry
  • 影刀RPA用户洞察革命!亚马逊消费行为智能分析,效率暴增2000% [特殊字符]
  • 错过这8个R语言质控要点,你的生物数据分析可能全白做
  • 基于52单片机的楼道智能照明系统设计与实现
  • 【限时掌握】环境监测时空数据处理:R语言三大绘图包对比与实操
  • GraphQL安全加固秘籍:PHP环境下复杂度分析器深度集成指南
  • 杨建允:AI搜索趋势对互联网营销的影响
  • 基于52单片机的红绿灯控制系统设计
  • 【农业物联网PHP实战】:3步实现设备状态实时同步的终极方案
  • 冒泡排序---库函数qsort
  • 环形链表问题
  • 3步搞定Laravel 13多模态存储集成,告别传统文件管理瓶颈
  • 从卡顿到秒级响应,农业传感器PHP数据写入优化全解析
  • 相亲局上,我把姑娘的“响应式”理解成了CSS
  • 天津到东营危险品物流运输公司 | 天津危化品专线直达东营 | 危险品仓储运输一体化