PAT乙类1013 数素数 (20 分)
一、题目
令 Pi表示第 i 个素数。现任给两个正整数 M≤N≤10^4,请输出 PM到 PN的所有素数。输入格式:
输入在一行中给出 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
二、代码
- 核心代码
换行哦 + 控制空格!! —page单独记录
定义了一个page用来单独计数。 因为前面有过经验,当输出"字数+空格",只需要特殊处理i = 0就行!!
所以这里用到if((page % 10)!= 0) cout<<" "; //特殊处理i=0,不用输出空格,而且在page转行后,需要page % 10 page++;if(page % 10 == 0) { //查阅资料发现,如果是1 10的话,这里会多一行。 cout<<endl;}
*分析
1)有些人是先遍历一遍,将所有的素数保存后,再将数组中满足下标m到n的素数找出进行输出!!也是可以的。
而我是新定义了一个变量k,用来直接记录判断素数过程中第几个素数!!!当 m<=k<=n时,处理输出就行!!
而且可以及时break,节省时间!!
*检查点错误分析
- 注意输入1 10时的检查!!!因为新定义了一个page, 在原来没有
if(k == n) {break; }
时会多输入一行。
- 10000指的是啥。 是素数个数。 实数个数肯定要大于它的啊!!!!!
#include <iostream>
#include <math.h>
using namespace std;
#define N 1000000bool isPrime(int n) {if(n == 2) return true;for(int i=2; i*i<=n; i++) {if(n % i == 0) {return false; }}return true;
}
int main() {int k=0, i, page = 0; //k用来从1到10000000进行遍历中记录是第几个素数!! page用来换行int m, n;cin>>m>>n;for(i=2; i<N; i++) {if(isPrime(i)) {k++;if(k>=m && k<=n) {if((page % 10)!= 0) cout<<" "; //这里肯定不会执行,因为还没有执行到这里已经终结了 cout<<i;if(k == n) {break; }page++;if(page % 10 == 0) { //查阅资料发现,如果是1 10的话,这里会多一行。 cout<<endl;}}}if( k > n ) {break;}}return 0;}
PAT乙类1013 数素数 (20 分)相关推荐
- C++学习之路 | PTA乙级—— 1013 数素数 (20分)(精简)
1013 数素数 (20分) 令 P i 表示第 i 个素数.现任给两个正整数 M≤N≤10 4 ,请输出 P M 到 P N 的所有素数. 输入格式: 输入在一行中给 ...
- 【PAT乙级】1013 数素数 (20 分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805309963354112 朴素写法 #include<cstdi ...
- 样例解释:1013 数素数 (20分)
立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 令 Pi表示第 i 个素数.现任给两个正整数 M≤N≤10^4 ,请输出 PM到 PN的所有素数. 输入 ...
- 1013 数素数 (20 分)(c语言)
令 Pi 表示第 i 个素数.现任给两个正整数 M≤N≤104,请输出 PM 到 PN 的所有素数. 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔. 输出格式: 输出从 PM 到 ...
- 1013 数素数 (20分)
输入样例: 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 # -*- encodi ...
- PAT 1013 数素数 (20)
题目 /*1013. 数素数 (20)令Pi表示第i个素数.现任给两个正整数M <= N <= 10^4,请输出PM到PN的所有素数.输入格式:输入在一行中给出M和N,其间以空格分隔.输出 ...
- 1013. 数素数 (20)-PAT乙级真题
令Pi表示第i个素数.现任给两个正整数M <= N <= 10^4,请输出PM到PN的所有素数. 输入格式: 输入在一行中给出M和N,其间以空格分隔. 输出格式: 输出从PM到PN的所有素 ...
- pat 乙级 1013 数素数(C++)
题目 令 Pi表示第 i 个素数.现任给两个正整数 M≤N≤104,请输出 PM到 PN的所有素数. 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔. 输出格式: 输出从 PM到 P ...
- PAT乙类1009 说反话 (20 分)
一. 题目 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出.输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文 ...
最新文章
- 如何用命令隐藏文件夹
- C指针原理(17)-C指针基础
- wxWidgets:wxImage类用法
- sqlserver browser无法启动_SQL Server中非sysadmin权限用户在SQL Agent的权限
- verilog or VHDL乒乓球游戏电路设计
- MySQL系统自带的数据库information schema
- 格林威治时间(Tue Jan 01 00:00:00 CST 2019)[ Date ]转化 为 [ 2019-01-01 10:10:10 ]
- 共享单车扫不开却自动计费 行程显示骑到非洲:想要带你一起去旅行?
- MIT6.830 lab1 SimpleDb 实验报告
- 递归和迭代_斐波那契数列的实现:递归方式和迭代方式
- CF 766C - Mahmoud and a Message (DP+字符串)
- ubuntu下分区工具
- 支持团队开发的UML建模和CASE工具MagicDraw
- 写一本技术书到底有多赚?实话告诉你200万轻轻松松!
- 理解ES6中的暂时死区(TDZ)
- 创建一个简单OIO模式的socket服务端
- 第四届中国(广东)国际“互联网+”博览会今日在佛山开幕 聚集工业“智慧”推动产业加速转型...
- Android URL scheme跳转失败(源码实现排查思路知识拓展)
- 计算机方向论文选题,初中计算机方向论文选题 初中计算机论文题目如何取
- enabled的使用
热门文章
- imageNamed和imageWithContentsOfFile-无法加载图片的问题
- linux-3.4.2移植到FL2440上(一)--只是基本移植
- 转载:mongoDB java驱动学习笔记
- poj 1269 直线相交情况
- 2 MyWarCraftStudio v0.6版
- hadoop fs 基本命令
- LinuxGPIO操作和MTK平台GPIO
- linux dump_stack
- php读取三维数组,php 读取多维数组方法_PHP教程
- c#字符型转化为asc_wap站 utf-8与 gb2312字符编码的转化函数