news 2026/7/24 20:48:39

质数筛-埃氏筛

作者头像

张小明

前端开发工程师

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/7/25 1:52:27

[Java]PTA:jmu-Java-06异常-finally

代码中向系统申请资源&#xff0c;到最后都要将资源释放。现有一Resource类代表资源类&#xff0c;包含方法&#xff1a;open(String str)打开资源&#xff0c;声明为抛出Exception(包含出错信息)。close()方法释放资源&#xff0c;声明为抛出RuntimeException(包含出错信息)现…

作者头像 李华
网站建设 2026/7/25 10:37:00

9、高级 Active Directory 配置与复制管理全解析

高级 Active Directory 配置与复制管理全解析 1. 命令行管理复制活动介绍 在 Active Directory 环境中,通过命令行工具管理复制是一项重要技能。下面以 Activity 2 - 7 为例,详细介绍如何使用 repadmin 和 dcdiag 这两个命令行程序来管理复制。 - 活动概述 - 所需…

作者头像 李华
网站建设 2026/7/25 17:36:09

Magistral-Small-1.2:多模态推理新升级

Mistral AI推出Magistral-Small-1.2模型&#xff0c;首次实现240亿参数级模型的多模态能力与本地高效部署&#xff0c;标志着轻量化大模型在推理与视觉理解领域的重要突破。 【免费下载链接】Magistral-Small-2509-FP8-torchao 项目地址: https://ai.gitcode.com/hf_mirrors…

作者头像 李华
网站建设 2026/7/24 15:07:25

6、Windows 操作系统架构与网络通信详解

Windows 操作系统架构与网络通信详解 1. Windows 操作系统概述 在企业环境中,大多数计算机都安装了某种版本的 Windows 操作系统。尽管运行 Windows 3.0 的机器越来越少,但仍有许多工作站使用 Windows 3.1 或 Windows for Workgroups 3.1/3.11(WFW),我们通常将这些 Wind…

作者头像 李华
网站建设 2026/7/23 23:46:50

7、Windows网络与RPC编程全解析

Windows网络与RPC编程全解析 1. Windows操作系统模式与网络架构 Windows(3.0/3.1版本)有三种操作模式,分别是实模式、标准模式和增强模式。Windows for Workgroups 3.11 是Windows 3.x 系列中最具网络功能的版本。 标准模式和增强模式的Windows for Workgroups(WFW)都内…

作者头像 李华
网站建设 2026/7/23 19:03:15

9、RPC 通信基础设施设计与实现

RPC 通信基础设施设计与实现 1. RPC 数据传输与类型问题 RPC(远程过程调用)在数据传输时,每个远程函数的数据参数需要明确无误。开发者可使用特殊属性(如 [string] )来强类型化远程函数的参数。应用程序设计者还需特别注意数据在客户端和服务器之间传输时的编组和解组…

作者头像 李华