PAT B1013

时间:2023-03-09 21:15:46
PAT B1013

PAT B1013

标签(空格分隔): PAT


解法:埃氏筛法

注意点:

1. 由于不知道第n个素数有多大,所以要用一个大的数组来储存结果。

2. 注意输出格式,末尾不能有多余空格

#include <cstdio>

const int maxn = 1000001;
int prime[maxn], num = 0;
bool p[maxn] = {0}; void Find_Prime(int n) {
for(int i = 2; i < maxn; i++) {
if(p[i] == false) {
prime[num++] = i;
if(num >= n) break;
for(int j = i + i; j < maxn; j += i) {
p[j] = true;
}
}
}
} int main() {
int m, n, count = 0;
scanf("%d%d", &m, &n);
Find_Prime(n);
for(int i = m; i <= n; i++) {
printf("%d", prime[i - 1]);
count++;
if(count % 10 != 0 && i < n) printf(" ");
else printf("\n");
}
return 0;
}