Basic Level 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

100ms 没法用python水了...
#include <iostream>

using namespace std;

const int MAXNUM = 1000000;
int Prime[10000] = {0};


void BuildPrime(int n){
    char Sign[MAXNUM] = {0};
    int pos = 0;
    for(int i= 2;true;++i){
        if(!Sign[i]) Prime[pos++] = i;
        if(pos>n) break;
        for(int j = i;j<MAXNUM;j+=i) Sign[j]= 1;
    }
}

int main() {
    int m,n;
    cin>>m>>n;
    BuildPrime(n);
    for(int i=m-1,j=1;i<n;++i,++j){
        cout<<Prime[i];
        if(j%10==0 || i == n-1)
            cout<<endl;
        else
            cout<<" ";
    }
    return 0;
}


posted @ 2014-03-20 20:12  Madao_  阅读(150)  评论(0)    收藏  举报