一、题目

令 P​i表示第 i 个素数。现任给两个正整数 M≤N≤10^4,请输出 PM到 PN的所有素数。输入格式:
输入在一行中给出 M 和 N,其间以空格分隔。输出格式:
输出从 P​M到 P​N的所有素数,每 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

二、代码

  • 核心代码
  1. 换行哦 + 控制空格!!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. 注意输入1 10时的检查!!!因为新定义了一个page, 在原来没有

    if(k == n) {break;
    }
    

    时会多输入一行。

  2. 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 分)相关推荐

  1. C++学习之路 | PTA乙级—— 1013 数素数 (20分)(精简)

    1013 数素数 (20分) 令 P ​i ​​ 表示第 i 个素数.现任给两个正整数 M≤N≤10 ​4 ​​ ,请输出 P ​M ​​ 到 P ​N ​​ 的所有素数. 输入格式: 输入在一行中给 ...

  2. 【PAT乙级】1013 数素数 (20 分)

    https://pintia.cn/problem-sets/994805260223102976/problems/994805309963354112 朴素写法 #include<cstdi ...

  3. 样例解释:1013 数素数 (20分)

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 令 P​i表示第 i 个素数.现任给两个正整数 M≤N≤10^​4 ,请输出 P​M到 P​N的所有素数. 输入 ...

  4. 1013 数素数 (20 分)(c语言)

    令 Pi​ 表示第 i 个素数.现任给两个正整数 M≤N≤104,请输出 PM​ 到 PN​ 的所有素数. 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔. 输出格式: 输出从 PM​ 到  ...

  5. 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 ...

  6. PAT 1013 数素数 (20)

    题目 /*1013. 数素数 (20)令Pi表示第i个素数.现任给两个正整数M <= N <= 10^4,请输出PM到PN的所有素数.输入格式:输入在一行中给出M和N,其间以空格分隔.输出 ...

  7. 1013. 数素数 (20)-PAT乙级真题

    令Pi表示第i个素数.现任给两个正整数M <= N <= 10^4,请输出PM到PN的所有素数. 输入格式: 输入在一行中给出M和N,其间以空格分隔. 输出格式: 输出从PM到PN的所有素 ...

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

    题目 令 P​i表示第 i 个素数.现任给两个正整数 M≤N≤10​4,请输出 PM到 P​N的所有素数. 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔. 输出格式: 输出从 P​M到 P ...

  9. PAT乙类1009 说反话 (20 分)

    一. 题目 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出.输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文 ...

最新文章

  1. 如何用命令隐藏文件夹
  2. C指针原理(17)-C指针基础
  3. wxWidgets:wxImage类用法
  4. sqlserver browser无法启动_SQL Server中非sysadmin权限用户在SQL Agent的权限
  5. verilog or VHDL乒乓球游戏电路设计
  6. MySQL系统自带的数据库information schema
  7. 格林威治时间(Tue Jan 01 00:00:00 CST 2019)[ Date ]转化 为 [ 2019-01-01 10:10:10 ]
  8. 共享单车扫不开却自动计费 行程显示骑到非洲:想要带你一起去旅行?
  9. MIT6.830 lab1 SimpleDb 实验报告
  10. 递归和迭代_斐波那契数列的实现:递归方式和迭代方式
  11. CF 766C - Mahmoud and a Message (DP+字符串)
  12. ubuntu下分区工具
  13. 支持团队开发的UML建模和CASE工具MagicDraw
  14. 写一本技术书到底有多赚?实话告诉你200万轻轻松松!
  15. 理解ES6中的暂时死区(TDZ)
  16. 创建一个简单OIO模式的socket服务端
  17. 第四届中国(广东)国际“互联网+”博览会今日在佛山开幕 聚集工业“智慧”推动产业加速转型...
  18. Android URL scheme跳转失败(源码实现排查思路知识拓展)
  19. 计算机方向论文选题,初中计算机方向论文选题 初中计算机论文题目如何取
  20. enabled的使用

热门文章

  1. imageNamed和imageWithContentsOfFile-无法加载图片的问题
  2. linux-3.4.2移植到FL2440上(一)--只是基本移植
  3. 转载:mongoDB java驱动学习笔记
  4. poj 1269 直线相交情况
  5. 2 MyWarCraftStudio v0.6版
  6. hadoop fs 基本命令
  7. LinuxGPIO操作和MTK平台GPIO
  8. linux dump_stack
  9. php读取三维数组,php 读取多维数组方法_PHP教程
  10. c#字符型转化为asc_wap站 utf-8与 gb2312字符编码的转化函数