7-294 筛法求素数(埃式筛、欧拉筛)

素数是仅仅能被它本身和1整除的任何整数。筛法求素数是一种查找素数的方法。它的算法如下:

1、创建一个数组,并将所有元素初始化为1(真)。具有素数下标的数组元素将保持为1,而其它数组元素最终将被设置为0。

2、从数组下标2开始,每次找到一个值是1的数组元素时,在数组的剩余部分中循环,并将值为1的元素的下标整数倍的所有元素设置为0。对于数组下标2,数组中所有2以上的而且是2的整数倍的元素都将这是为0(下标4、6、8、10等等)。对于数组下标3,数组中所有3以上,而且是3的整数倍的元素都将设置为0(下标6、9、12、15等等)。

当这个过程结束时,仍然为1的数组元素的下标是一个素数。然后就可以输出这些素数。

编写一个程序,输出区间[m, n]之间的所有素数。

输入格式:

输入的第一行是一个整数k,表示以后会有k次查询。
后面的k行中,每行2个整数m和n。

输入保证 2 <= m <= n <= 100000。

输出格式:

对每一行的m和n,把闭区间[m, n]之间的所有素数输出到一行。每个数之间以空格隔开。若区间内没有素数,输出None

输入样例:

6
2 20
3 3
5 15
11 32
121 126
100 200

输出样例:

在这里给出相应的输出。例如:

2 3 5 7 11 13 17 19 
3 
5 7 11 13 
11 13 17 19 23 29 31 
None
101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 
#include <stdio.h>
#include <stdlib.h>
#include <string.h#define N (int)1e5+9 // 1e5+9为浮点类型
int pri[N]; // 0为素数,1为合数 // 1.埃式筛法
int main(void)
{int n;scanf("%d", &n);while(n--){int cnt=0;memset(pri,0,sizeof(pri));int x,y;scanf("%d %d",&x,&y);// 模板for (int i = 2; i <= y/i; i++) {if (!pri[i]) { // i为素数for (int j = i * i; j <= y; j += i) pri[j] = 1; // 筛掉i的倍数}}for(int i=2;i<=y;i++){if(!pri[i] && i>=x && i<=y){cnt++;printf("%d ",i);}}if(cnt)printf("\n");elseprintf("None\n");}return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define N (int)1e5+9 
int pri[N]; // 0为素数,1为合数 
int primes[N],pp=0;
// 2.欧拉筛法
int main(void)
{int n;scanf("%d", &n);while(n--){int cnt=0,ans=0;pp=0;memset(pri,0,sizeof(pri));int x,y;scanf("%d %d",&x,&y);// 模板for(int i=2;i<=y;i++){if(!pri[i]) primes[++pp]=i,cnt++;for(int j=1;j<=pp && primes[j]*i<=y;j++){pri[primes[j]*i]=1;if(i%primes[j]==0) break;}}for(int i=1;i<=cnt;i++) {if(primes[i]>=x && primes[i]<=y){printf("%d ",primes[i]);ans++;}}if(ans)printf("\n");elseprintf("None\n");}return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/787761.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于three-mesh-bvh实现第一人称及第三人称的漫游

基于three-mesh-bvh实现第一人称及第三人称的漫游 简介 这篇文章主要介绍在3d场景中实现第一人称与第三人称切换以及碰撞监测的漫游方案。 人称视角的场景漫游主要需要解决两个问题&#xff0c;人物在场景中的移动和碰撞检测。移动与碰撞功能是所有三维场景首先需要解决的基…

AI心理咨询

idea 真人介入时长&#xff0c;频率&#xff0c; 对受访者的体验变化曲线。 采集真人伴随AI咨询的数据&#xff0c; 研发代替真人插入AI咨询的AI 相关产品 标题AI心理咨询应用】继Woebot之后&#xff0c;国内诞生的“LLMCBT”应用&#xff1a;白小喵~ Woebot 标题AI 心理…

ObjectiveC-03-XCode的使用和基础数据类型

本节做为Objective-C的入门课程&#xff0c;笔者会从零基础开始介绍这种程序设计语言的各个方面。 术语 ObjeC&#xff1a;Objective-C的简称&#xff0c;因为完整的名称过长&#xff0c;后续会经缩写来代替&#xff1b;项目/工程&#xff1a;也称工程&#xff0c;指的是一个A…

【现代控制】倒立摆模型

基础公式 转动惯量&#xff1a; 欧拉拉格朗日等式 倒立摆模型建立 由拉格朗日等式推导出微分方程&#xff1a; 也就是 将zdot移到等式左边&#xff0c;化简得到 展开就是&#xff1a; 系统线性化 法一&#xff1a;雅可比矩阵 法二&#xff1a;小角度假设 化简最终得…

基于8086贪吃蛇游戏系统方恨设计

**单片机设计介绍&#xff0c;基于8086贪吃蛇游戏系统方恨设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于8086的贪吃蛇游戏系统设计是一个结合了微处理器控制、游戏逻辑以及图形显示技术的综合性项目。该系统旨在通过8086微处理器…

C语言中输入函数scanf与gets得区别

1. gets(接收字符串)会将终端接收的 \n 字符转换成 \0 2. gets可以接收 (空格)字符&#xff0c;但scanf不能接收空格字符 3. scanf中除了%c可以接收 (空格)和 \n 字符&#xff0c;其余均无法接收 和 \n 字符 4. 注意&#xff1a;gets不要和scanf混合使用&#xff0c…

学习使用echats因xAxis值过多,可以滚动的柱状图解决方案

学习使用echats因xAxis值过多&#xff0c;可以滚动的柱状图解决方案 效果图柱状图代码关键代码 效果图 柱状图代码 function echarts() {// 基于准备好的dom&#xff0c;初始化echarts实例var myChart echarts.init(document.getElementById(echart4));let xaxisData [1, 2,…

篮球竞赛预约平台的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读300套最新项目持续更新中..... 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含ja…

LabelConvert: 目标检测和图像分割数据集格式转换工具

LabelConvert LabelConvert是一个目标检测和图像分割的数据集格式转换工具&#xff0c;支持labelme、labelImg与YOLO、VOC和COCO 数据集格式之间的相互转换。 支持的转换格式 安装 pip install label_convert具体使用方法 由于文章篇幅所限&#xff0c;请移步LabelConvert官…

idea 报错 Could not list the contents of folder “ftps

idea 报错 Could not list the contents of folder "ftps 解决方案 这里看到了网上的解决方案&#xff0c;顺便再记录一下。打开 【高级】菜单 - 取消勾选 被动模式。然后点击测试连接&#xff0c;显示连接成功&#xff01; ftp中的主动模式和被动模式 主动模式&…

GS1-全球分类标准

GS1 GS1是一个中立的全球合作平台&#xff0c;汇集行业领袖、政府、监管机构、学术界和协会&#xff0c;共同开发基于标准的解决方案&#xff0c;以应对数据交换的挑战。我们的规模和影响力——遍布 116 个国家/地区的当地会员组织、超过 200 万家用户公司和每天 100 亿笔交易—…

Python中os.environ基本介绍及使用方法

文章目录 python中os.environos.environ简介os.environ进行环境变量的增删改查 python中os.environ的使用详解1. 简介2. key 字段详解2.1 常见 key 字段 3. os.environ.get() 用法4. 环境变量的增删改查和判断是否存在4.1 新增环境变量4.2 更新环境变量4.3 获取环境变量4.4 删除…

基于“遥感+”蓝碳储量估算、红树林信息提取实践技术应用与科研论文写作教程

原文链接&#xff1a;基于“遥感”蓝碳储量估算、红树林信息提取实践技术应用与科研论文写作教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247599633&idx5&sn1398cde523f9c5e036e4d478fc1d3388&chksmfa8207f6cdf58ee0a3a2bf652e7ac5cf65636b05f9e…

[技术笔记] Flash选型之基础知识芯片分类

1、按照接口分类 分为 Serial串口Flash 和 Parallel并口Flash&#xff1b; 市场大量使用Serial Flash&#xff1b;价格便宜&#xff1b;已满足系统对数据读写速度的要求&#xff1b; Serial Flash已经可以代表 NOR Flash&#xff1b; 小知识&#xff1a; 1&#xff09;在…

fastapi学习记录

今天看了点fastap&#xff0c;简单记录下&#xff0c;fastapi是一个python下的后端框架。 参考学习网站菜鸟教程 安装 pip install fastapi pip install "uvicorn[standard]"安装好了以后就可以直接使用&#xff0c;最主要的使用方式就是写接口嘛&#xff0c;get&a…

【gurobi】添加约束/目标函数时,连加表示

gurobi中添加变量时,连加该怎么表示 在 Gurobi 中,你可以通过 addVars() 方法来添加变量,并且可以使用 sum() 函数来表示变量的连加。 下面是一个示例代码,演示了如何在 Gurobi 中添加变量并进行连加: import gurobipy as gp from gurobipy import GRB# 创建一个新的模…

【软考】-事务与封锁协议

1、事务的四个特性 (操作) 原子性&#xff1a;要么全做&#xff0c;要么全不做。 (数据)一致性&#xff1a;事务发生后数据是一致的&#xff0c;例如银行转账&#xff0c;不会存在 A 账户转出&#xff0c;但是 B 账户没收到的情况。 (执行)隔离性&#xff1a;任一事务的更新…

2024最新软件测试【测试理论+ Unittest 框架】面试题(内附答案)

一、测试理论 3.1 你们原来项目的测试流程是怎么样的? 我们的测试流程主要有三个阶段&#xff1a;需求了解分析、测试准备、测试执行。 1、需求了解分析阶段 我们的 SE 会把需求文档给我们自己先去了解一到两天这样&#xff0c;之后我们会有一个需求澄清会议&#xff0c; …

Halcon3D倾斜平面矫正至水平面

前言 在相当多的3d检测中&#xff0c;由于各种因素的干扰&#xff0c;我们所检测的平面通常并不是一个水平面&#xff0c;或者被检测的面不是水平面的情况。尤其是在倾斜面的缺陷检测和平面度检测中&#xff0c;使用被测面与拟合基准面进行计算很难做到准确的定位到缺陷的情况…

字符串优化单例模式(C++基础)

字符串优化 小字符会优化为栈上&#xff0c;长度大于15才会堆声明&#xff08;带上终止符16&#xff09; 在各种实际应用中&#xff0c;使用字符串的场景不在少数&#xff0c;总有由于一些错误的代码书写&#xff0c;导致产生性能问题&#xff0c;我们今天学习一种针对字符串…