news 2026/5/30 23:00:53

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
欧拉筛(线性筛)——算法笔记

欧拉筛是一种筛选素数算法,也叫线性筛,因为他的时间复杂度很优秀,能做到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上有更多讲得很好的文章,可以多看看。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 19:57:08

K8S系列之7.1:云原生DevOps(CI/CD 在 K8S 中的实践)

在云原生时代,DevOps已经演进为以GitOps为核心的全新实践。本章将带你从传统CI/CD转型到真正的云原生交付流水线,实现从代码提交到生产部署的完全自动化、可审计、可回滚的现代化交付流程。 引言:从CI/CD到GitOps的演进 传统CI/CD的痛点: 环境漂移:不同环境配置不一致,&…

作者头像 李华
网站建设 2026/5/29 19:13:59

操作数据库注意项

数据库最好用VIP登陆&#xff0c;防止主从不一致的情况出现

作者头像 李华
网站建设 2026/5/29 20:13:04

TypeToken到反射工厂,泛型实例化你必须掌握的3大核心技术,少一个都不行

第一章&#xff1a;泛型的实例化 泛型的实例化是编程语言中实现类型安全与代码复用的核心机制之一。它允许开发者编写可适用于多种数据类型的类、接口或方法&#xff0c;而无需在定义时指定具体类型。在运行时&#xff0c;通过为泛型参数传入实际类型&#xff0c;完成泛型的实例…

作者头像 李华
网站建设 2026/5/29 20:33:47

【专家级技术揭秘】:R与Python之间变量传递的3种模式与性能对比

第一章&#xff1a;R与Python变量传递的技术背景与挑战在数据科学和统计计算领域&#xff0c;R与Python是两种最为广泛使用的编程语言。尽管两者各有优势——R在统计建模与可视化方面表现卓越&#xff0c;而Python则以通用编程能力和丰富的机器学习库著称——但在实际项目中&am…

作者头像 李华
网站建设 2026/5/29 20:33:37

量子门序列设计难题,如何用R包实现精准控制?

第一章&#xff1a;量子门序列设计难题&#xff0c;如何用R包实现精准控制&#xff1f;在量子计算中&#xff0c;精确操控量子态依赖于高效的量子门序列设计。由于量子系统极易受噪声干扰&#xff0c;传统手动构造门序列的方法难以满足高保真度需求。近年来&#xff0c;利用R语…

作者头像 李华