/*
令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
*/
//素数筛选法
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <stack>
#define MAX 1000000
using namespace std;
int a[MAX];
int main() {
int m, n, i, j;
memset(a, 0, sizeof(a));
for(i = 2; i < MAX; i++) {
for(j = i * 2; j < MAX; j += i) {
a[j] = 1;
}
}
scanf("%d%d", &m, &n);
int cnt = 0, pos;
for(i = 2; i < MAX; i++) {
if(a[i] == 0) {
cnt++;
}
if(cnt == m) {
break ;
}
}
pos = 0;
for( ; ; i++) {
if(a[i] == 0) {
cnt++;
printf("%d", i);
pos++;
if(pos != 10 && cnt != n + 1) {
printf(" ");
}
}
if(cnt == n + 1) {
break ;
}
if(pos == 10) {
printf("\n");
pos = 0;
}
}
return 0;
}
1013
最新推荐文章于 2021-09-14 15:54:01 发布