PAT乙级.1013. 数素数 (20)
来源:互联网 发布:买烟用什么软件下载 编辑:程序博客网 时间:2024/05/29 12:15
1013. 数素数 (20)
题目
令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出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
思路
1.先用筛法获取素数表
2.按要求输出素数
代码
/*** @tag PAT_B_1013* @authors R11happy (xushuai100@126.com)* @date 2016-9-8 18:15-* @version 1.0* @Language C++* @Ranking 870/400* @function null*/#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;const int maxn = 1001000; //end <= 1e4只是说最多10000个素数,但第10000个素数是多大不确定,建议数组先开大一点,只开10010肯定不够int prime[maxn];bool p[maxn] = { 0 };//筛法获取素数表void Find_Prime(int end){ int pNum = 0; for (int i = 2; i<maxn && pNum<end; i++) { if (p[i] == false) { prime[pNum++] = i; for (int j = i + i; j<maxn; j += i) //i的所有整数倍全部筛掉 { p[j] = true; } } }}int main(int argc, char const *argv[]){ int begin, end; int cnt = 0; scanf("%d %d", &begin, &end); Find_Prime(end); for(int i = begin-1; i<end; i++) { printf("%d",prime[i] ); cnt++; if(cnt % 10 != 0 && i<end-1) printf(" "); //只有每到行末,才输出空格 else printf("\n"); } return 0;}
收获
0 0
- PAT 乙级 1013. 数素数 (20)
- PAT-乙级-1013. 数素数 (20)
- 【PAT】(乙级)1013. 数素数 (20)
- PAT乙级.1013. 数素数 (20)
- 1013. 数素数 (20)-PAT乙级
- PAT乙级 1013. 数素数 (20)
- PAT乙级1013. 数素数 (20)
- PAT-乙级 1013.数素数(20)
- [PAT乙级]1013. 数素数 (20)
- PAT 乙级练习题1013. 数素数 (20)
- 1013. 数素数 (20)--PAT乙级
- PAT乙级1013. 数素数(20)
- PAT乙级 1013. 数素数
- PAT 乙级 1013. 数素数
- [PAT-乙级]1013.数素数
- PAT乙级 数素数 (20)
- PAT乙级 1013. 数素数 (20) 素数表
- PAT乙级1013. 数素数 (20) 判断素数代码
- Java设计模式--原型模式
- android traceview 使用方法
- 《Linux内核设计与实现》笔记--进程管理
- MariaDB FederatedX引擎
- 读取注册表获取Windows系统XP/7/8/10类型
- PAT乙级.1013. 数素数 (20)
- 一些常见的问题
- Java数组2
- OpenCL快速入门教程
- 【webstorm】下载安装 crack
- 数据结构
- 从零开始学习音视频编程技术(四) FFMPEG的使用
- JQuery判断radio是否选中,获取选中值
- 五款资深高效的Web性能测试工具