news 2026/6/19 21:42:51

质数筛-埃氏筛

作者头像

张小明

前端开发工程师

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 4:22:50

Linly-Talker如何防止模型过拟合导致的僵硬表情?

Linly-Talker如何防止模型过拟合导致的僵硬表情&#xff1f; 在虚拟主播、数字员工和智能客服日益普及的今天&#xff0c;用户早已不满足于“能说话”的数字人——他们期待的是一个会思考、有情绪、能共情的虚拟角色。然而&#xff0c;现实却常常令人失望&#xff1a;许多系统…

作者头像 李华
网站建设 2026/6/18 22:41:23

10、RPC 技术详解及应用实践

RPC 技术详解及应用实践 1. 高尔夫游戏 RPC 接口实现 在 RPC 编程中,我们先来看一个高尔夫游戏的相关接口实现。有两个关键函数 StartGolf 和 EndGame ,以及一个 PGOLF_GAME_CONTEXT_rundown 例程。 RPC STATUS StartGolf ( CHAR *pchPlayerName, PPGOLF_GAME_CONT…

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

14、Windows NT管道编程全解析

Windows NT管道编程全解析 1. 16位Windows套接字应用程序指南 在16位Windows环境下进行套接字编程时,有一些重要的指导原则可以遵循,这些原则有助于提升应用程序的性能和稳定性。 首先,除非必要,Windows应用程序应尽量避免使用阻塞套接字调用,如 connect() 、 send(…

作者头像 李华
网站建设 2026/6/14 22:38:59

21、NetBIOS编程:广播数据报、Win32服务与Win16环境指南

NetBIOS编程:广播数据报、Win32服务与Win16环境指南 1. 广播数据报的使用 在网络通信中,广播数据报是一种重要的通信方式。在之前的程序里, NCB.SEND.BROADCAST.DATAGRAM 和 NCB.RECEIVE.BROADCAST.DATAGRAM 被用于发送和接收广播数据报。广播数据报的使用与定向数据报…

作者头像 李华
网站建设 2026/6/19 9:33:10

Linly-Talker能否生成动物拟人化形象?创意内容新方向

Linly-Talker能否生成动物拟人化形象&#xff1f;创意内容新方向 在短视频与虚拟角色内容爆发的今天&#xff0c;一个有趣的问题悄然浮现&#xff1a;我们能不能让家里的猫、狗、甚至熊猫“开口说话”&#xff0c;用它们的形象讲个故事、播报天气&#xff0c;或者当一回儿童节目…

作者头像 李华