news 2026/6/21 7:32:30

质数筛-埃氏筛

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
质数筛-埃氏筛

质数的定义:只能被 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; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/19 19:38:51

河北石家庄/山东济南/天津商业文旅街区氛围设计公司【力荐】

商业文旅街区正以“商业文化旅游”的复合形态&#xff0c;成为城市活力焕新的核心载体。聚焦河北石家庄、山东济南、天津三大城市群&#xff0c;以地域文化为基因&#xff0c;以艺术科技为语言&#xff0c;从街区空间重构到主题场景营造&#xff0c;从互动装置研发到全周期运营…

作者头像 李华
网站建设 2026/6/19 2:27:15

53、FTDI设备使用与驱动配置全解析

FTDI设备使用与驱动配置全解析 1. FTDI设备的使用场景 FTDI技术有着多种实用的使用场景,为不同系统提供了便捷的连接和功能扩展方式。 - 作为USB转串口线 :这是FTDI技术最简单的应用,例如EasySync Ltd的USB - RS232适配线。只需安装FTDI驱动,将线缆的USB端插入系统的U…

作者头像 李华
网站建设 2026/6/21 12:06:05

56、嵌入式开发:Compact 7 集成管理代码与虚拟 PC 配置全攻略

嵌入式开发:Compact 7 集成管理代码与虚拟 PC 配置全攻略 1. 集成管理代码项目到 Compact 7 镜像构建 在将管理代码项目集成到 Compact 7 镜像构建时,需要进行一系列操作。 - 添加内容到 postlink.bat 文件 :添加以下内容到项目的 postlink.bat 文件中,代码片段来…

作者头像 李华
网站建设 2026/6/19 0:58:16

57、Windows Embedded Compact 7开发资源与硬件选择全解析

Windows Embedded Compact 7开发资源与硬件选择全解析 一、开发资源介绍 1.1 实用工具资源 在Windows Embedded Compact 7开发中,有许多实用的工具资源。比如Smart Device Information and Remote Processes Tool,它可以让你在桌面PC上管理Windows CE和Windows Mobile设备…

作者头像 李华
网站建设 2026/6/21 18:39:04

Linly-Talker镜像支持Kubernetes集群部署

Linly-Talker 镜像支持 Kubernetes 集群部署 在直播带货、智能客服和远程办公日益普及的今天&#xff0c;企业对“看得见”的交互体验提出了更高要求。用户不再满足于冷冰冰的文字回复或单调的语音播报&#xff0c;而是期待一个能听、会说、有表情的数字人助手——既能理解复杂…

作者头像 李华
网站建设 2026/6/19 21:21:12

计算机毕业设计springboot家乡特色美食推荐系统的设计与实现 SpringBoot驱动的地域风味美食智能推荐平台构建 基于SpringBoot的乡土特色菜品发现与分享系统

计算机毕业设计springboot家乡特色美食推荐系统的设计与实现psst3cf2 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。在全球化流动加剧、人口迁移常态化的当下&#xff0c;“舌尖…

作者头像 李华