【PAT乙级】题解-1013 数素数

PAT 乙级(Basic Level) 历年所有真题汇总(2013-2018) PAT乙级历年所有真题汇总 阅读详情

PAT :计算机程序设计能力考试:一个高校编程学习赛,内容基础,据说题目描述含糊不清,造成诸多理解错误。

第一观感是:输入输出样例极少,未给学生充分理解题目,提供更多辅助。

PAT 乙级:只涉及基础编程,最难到排序算法。适合基础语法学习阶段的同学。

问题描述

令 P i P_i Pi​ 表示第 i 个素数。现任给两个正整数 M ≤ N ≤ 1 0 4 M≤N≤10^4 M≤N≤104,请输出 P M P_M PM​ 到 P N P_N PN​ 的所有素数。

输入格式

输入在一行中给出 M 和 N,其间以空格分隔。

输出格式

输出 P M P_M PM​ 到 P N P_N PN​ 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。

输入样例:
5 27
输出样例:

输入输出样例

输入样例输出样例
5 2711 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103

样例解释:输出时,行末元素后,无空格。

题解 1

思路分析:构造 primes[10001] 数组,存储前 10000 个素数,并初始定义样例中的 27 个素数,如果 N ≤ 27,则可直接打印。否则,构造更多素数,添加到 primes 中。

#include <iostream>
using namespace std;

bool isPrime(int x);
void printPrimes(int *primes, int start, int end);

int main() {
       
    int m, n;
    cin >> m >> n;
    // 充分利用已知
    int primes[10001] = {0, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43,
                        47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103};
    int cnt = 27;   // 初始有 27 个素数
	// 构造更多 prime
	// cnt >= n 时,将直接执行 printPrimes 操作
    for(int i=104; cnt < n; i++) {
        if(isPrime(i)) {
			primes[++cnt] = i;
		}
    }
	printPrimes(primes, m, n);
    
    return 0;
}

// 判断素数的一般写法
bool isPrime(int x) {
    if(x < 2) return false;
    for(int i = 2; i * i <= x; i++) {
        if(x % i == 0) return false;
    }
    return true;
}

// 按要求格式,打印 primes 区间 [M, N] 的所有素数
void printPrimes(int* primes, int start, int end) {
    int cnt = 1;
    for(int i = start; i <= end; i++) {
        
        if(cnt % 10 == 0 || i == end) {
            cout << primes[i] << endl;
        } else {
            cout << primes[i] << " ";
        }
        cnt ++;
    }
}
UE5实现建筑剖切效果 阅读详情

相关推荐

解决rt-thread上使用SPI+DMA

首先阐述下遇到的问题 使用SPI读取icm20602数据,读取频率为1000hz,使用stm32f407主控,发现CPU占用率达到了70%,将此线程注释掉后CPU占用率掉到25%,看来这里要着重优化,便萌生了使用DMA的想法。 使用SPI+DMA要进行的配置 1.开启RTT设备驱动。点击自己的工程 ->RT-Thread Setting2.在board.hzhong3.在board.c文件里加入以下函数,此函数受设备框架调用 void HAL_SPI_MspInit(SPI_HandleTypeDef

响望的博客 8088

PAT 乙级 1013. 数素数

1013.数素数 令PiP_i表示第ii个素数。现任给两个正整数M<=N<=104M <= N <= 10^4,请输出PM到PNP_N的所有素数。 输入格式: 输入在一行中给出M和N,其间以空格分隔。 输出格式: 输出从PMP_M到PNP_N的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。 输入样例: 5 27

Void main with out return 696

详解电路设计中的RC电路

​ 一、什么是RC电路 RC电路是指由电阻R和电容C组成的电路,它是脉冲产生和整形电路中常用到 的电路。 常见的RC充、放电电路、RC积分电路合RC微分电路接下来详细讲解。 二、RC充、放电电路 RC充、放电电路如下图所示,下面通过充电和放电两个过程来分析此电路。 ​RC充、放电电路图 (1)RC充电电路 RC充电电路图如下图(a)所示 RC充电电路图及充电曲线图 ​由上图分析: 将上图a中开关S置于“1”处,电源E开始通过电阻R对电容C充电,由于刚开始充电时电容两端没有..

IT xiaobai 4万+

1013 数素数

PAT乙级题解 1013 数素数

pangyou3s的博客 358

Vanna 2.0:基于LLM的智能文本到SQL框架,实现企业级数据查询与权限控制

文本到SQL技术是自然语言处理与数据库交互的重要桥梁,它允许用户使用日常语言直接查询数据库,无需编写复杂的SQL语句。其核心原理是利用大语言模型理解用户意图,并结合检索增强生成技术,将自然语言问题转换为准确的结构化查询语言。这项技术的价值在于大幅降低了数据访问门槛,提升了业务人员的数据自助分析能力,并能在金融分析、销售报表、运营监控等场景中实现实时数据洞察。Vanna 2.0作为一个开源框架,通过引入用户感知的智能体架构和行级安全策略,解决了企业级应用中的多租户数据隔离与权限控制等关键问题,使得自然语言数据

weixin_42629522的博客 546

手把手教你用VS Code + Codex在WSL中高效编程(避坑指南)

本文提供了一份详细的避坑指南,教你如何在WSL环境中高效配置和使用VS Code与OpenAI Codex。文章核心在于解决WSL内Codex扩展的OAuth登录失败问题,推荐将扩展安装在Windows本地,并通过UNC路径直接访问WSL文件系统,从而实现AI辅助编程与Linux开发环境的无缝结合,提升编码效率。

weixin_28677451的博客 1065

PAT乙级1013 数素数(C语言)(需借鉴)

刚开始n++的位置放置错误导致了死循环,以及在思考如何每十个换行时花费时间较久,思路不清晰,万幸AC,每次做完自己潦草的解法后,记得寻找更优算法向大佬学习。

ZYFzyf0的博客 263

【HarmonyOS】ArkUI的组件扩展

ArkuI的组件扩展主要是通过等装饰器来对于一些常用的自定义组件进行封装, 来简化UI开发流程, 提高自定义组件的可复用性。

2302_79763237的博客 1167

PAT 乙级题目讲解:1013《数素数》

本文详解 PAT 乙级 1013 题《数素数》,要求输出第 $P_M$ 到第 $P_N$ 个素数。通过埃拉托色尼筛法高效预处理前 10000 个素数,并严格控制输出格式——每行最多 10 个,末尾无多余空格。文章涵盖题目分析、解题思路、完整代码、常见错误提醒以及总结拓展。

qq_35624947的博客 2010

seurat v5更新及样本整合方法

1 Seurat 对象和 Assay 类发生了变化:支持更多种类的检测和数据类型,包括磁盘上的矩阵。引入了分层结构来存储数据,例如原始计数、标准化数据和 z 得分/方差稳定数据。可以使用 $ 访问器或 LayerData 函数来访问数据。现有的 Seurat v4 函数和工作流程仍可在 v5 中使用。2 整合工作流程发生了变化:简化了整合流程,提高了速度和内存效率。整合结果与 v4 工作流程略有不同,但用户仍可在 v5 中运行 v4 整合工作流程。

hx2024的博客 2686

3.摄像头组件- CVP (ISP)

本文介绍 车载摄像头组件-ISP

2401_83458819的博客 1617

PAT乙级-1013 数素数

解题代码: import math def is_prime(n): if n < 2: return False if n == 2 or n == 3: return True if n % 2 == 0 or n % 3 == 0: return False for i in range(3,i...

学习路径记录,文献学习记录,项目记录。 129

LFI Scanner 本地文件包含漏洞扫描、文件路径遍历、敏感文件读取(etcpasswd)

✅ **敏感文件读取验证**:内置`/etc/passwd、/windows/system32/drivers/etc/hosts、phpinfo.php`等敏感文件字典,一键验证漏洞可利用性;🔴 **Windows**:`/windows/win.ini`(系统配置)、`/windows/system32/drivers/etc/hosts`;🔴 **Linux**:`/etc/passwd`(用户信息)、`/proc/version`(内核版本)、`/etc/hosts`(域名解析);

寒寒豆豆软件公司的博客 130

B1013 PAT乙级JAVA题解 数素数

令 Pi​ 表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 PM​ 到 PN​ 的所有素数。

qq_49695680的博客 355

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

PAT乙级题解——1013 数素数 (20分)

#include <iostream> #include <vector> using namespace std; bool IsPrime(int n) { if(n <= 1){ return false; } for (int i = 2; i * i <= n; i++) { if ((n % i) == 0){ return false; } } .

Matrix990的博客 234

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

PAT乙级题解(1013. 数素数)

1013. 数素数 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 令Pi表示第i个素数。现任给两个正整数M 4,请输出PM到PN的所有素数。 输入格式: 输入在一行

Hehehehe 422

JavaScript PAT乙级题解 1013数素数

JavaScript PAT乙级题解 1013数素数

weixin_47925230的博客 235

1013 数素数 (20分)(Java 题解)

1013 数素数 (20分) 原题链接:传送门 一、题目: 输入样例 1: 5 27 输出样例 1: 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 二、解析: 思路:   首先他题目给了M和N的范围,就可以得到一共有多少个素数,所以创建一个数组把这10000个素数算好存起来。   之后就直接将...

长生的梦呓 748

PAT 乙级 1013 数素数 (20 分)

题目:PAT 乙级 1013 数素数 (20 分) 经验总结: C++代码: #include<bits/stdc++.h> using namespace std; bool isPrime(int n) { //判断一个数是否是素数 if(n<=1) return false; if(n==2 || n==3) return true; if(n%6!=1 &a...

努力努力再努力 150

编程题目: PAT 1013. 数素数 (20)

1013. 数素数 (20) 时间限制 100 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN...

weixin_30586257的博客 219

PAT乙级【Java题解合集】

超级全的PAT的JAVA题解

小羊不会飞的博客 3732

pat乙级1013 数素数(C++)

pat乙级1013 数素数题目思考代码注释 题目 PAT 令 P​i表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 P​M到 P​N的所有素数。 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔。 输出格式: 输出从 PM到 PN的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。 输入样例: 5 27 输出样例: 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103

yteeh2000的博客 1288

PAT乙级1013. 数素数(C语言)

PAT乙级真题题解目录 /* * 本题的关键: * 1. 第i个素数的获取方法:遍历奇数,记录素数的个数 * 2. 素数的输出,10 个数字占 1 行,末尾无空格:记录已输出的数量 */ #include &lt;stdio.h&gt; int isPrime(int num) {//判断从5开始的奇数是否为素数 for (int i = 3; i * i &...

对方北方 1088

PAT 乙级1013 数素数

PAT 乙级1013 数素数 题目 输入样例: 5 27 输出样例: 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 分析: 。。改了好长时间,第4个测试点还是过不了,有的博友说是数组开的太小了,要开到105000就可以了,但我的数组改了就运行超时了,这是为啥啊????,有同学看到能帮我指正一下吗 提交结果: 源码: #include<stdio.h> int main() { int min

a123456chj的博客 203

PAT乙级1013 || 数素数(C语言)

数素数 题目描述: 令 P(i) 表示第 i 个素数。现任给两个正整数 M≤N≤10410^4104,请输出 P(M)到 P(N)的所有素数。 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔。 输出格式: 输出从P(M)到P(N)的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行...

whenever5225的博客 428

【PAT】题解集(乙级)

题解集 - PAT (Basic Level) Practice (中文) - 乙级 一、题集 题目 题解传送门 1001 害死人不偿命的(3n+1)猜想 (15分) 传送门 1002 写出这个数 (20分) 传送门 1003 我要通过! (20分) 传送门 1004 成绩排名 (20分) 传送门 1005 继续(3n+1)猜想 (25分) 传送门 1006 ...

长生的梦呓 1794
上一篇: 【PAT乙级】题解-1011 A+B 和 C
下一篇: 【PAT乙级】题解-1016 部分A+B
老坛算粉
博客等级 码龄12年 708粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老坛算粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值