PAT乙级(Basic Level)真题1003
2017-01-25 21:01
246 查看
题目描述
令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出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
令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出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
#include <iostream> using namespace std; ///*开根号法:如果一个数(>2),对这个数求平方根,如果这个数能被这个数的平方根到2之间的任何一个(只要有一人就行)整除说明就不是质数,如果不能就说明是质数!*/ int main() { int *num = new int[10000];//记得释放 int M, N; cin >> N >> M; int k = 0, j; num[k++] = 2; for (int i = 3; i <= 110000; i++) { for (j = 0; j*j < k; j++) { if (i % num[j] == 0)break;//跳出两层 } if (j*j >= k) { num[k++] = i; } if (k > M)break; } for (int i = 1; N <= M; N++, i++) { if (i % 10 != 0 && N != M) cout << num[N-1] << " "; else if (i % 10 == 0) cout << num[N-1] << endl; else cout << num[N-1]; } delete [] num; return 0; }
相关文章推荐
- PAT乙级(Basic Level)真题-1003 数素数 (20)
- PAT乙级真题及训练集 PAT (Basic Level) Practise (中文)1003. 我要通过!
- PAT乙级真题及训练集 PAT (Basic Level) Practise (中文)1012. 数字分类
- PAT乙级(Basic Level)真题 >统计同成绩学生
- PAT乙级真题及训练集 PAT (Basic Level) Practise (中文)1005. 继续(3n+1)猜想
- PAT乙级真题及训练集 PAT (Basic Level) Practise (中文)1008. 数组元素循环右移问题
- PAT乙级(Basic Level)真题 >福尔摩斯的约会 (Java记录)
- PAT乙级(Basic Level)真题-1030 组个最小数 (20)
- PAT乙级(Basic Level)真题-1031 查验身份证(15)
- PAT乙级(Basic Level)真题 >查验身份证
- PAT乙级(Basic Level)真题 >到底买不买
- PAT乙级(Basic Level)真题-1001 A+B和C (15)
- PAT乙级真题及训练集 PAT (Basic Level) Practise (中文)1010. 一元多项式求导
- PAT乙级(Basic Level)真题-1017 打印沙漏(20)
- 【PAT乙级(Basic Level)真题】1001:A+B和C
- PAT乙级(Basic Level)真题 >程序运行时间
- PAT乙级(Basic Level)真题 >挖掘机技术哪家强
- PAT乙级(Basic Level)真题-1016 程序运行时间(15)
- PAT乙级(Basic Level)真题1001
- PAT乙级(Basic Level)真题 >有几个PAT