PAT B1013

Posted kirarrr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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("
");
    }
    return 0;
}


以上是关于PAT B1013的主要内容,如果未能解决你的问题,请参考以下文章

B1013

B1013 数素数

B1013

PAT-乙级-1049 数列的片段和

PAT Basic 1049

PAT 数列的片段和简单数论