1013. 数素数 (20)

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

 

#include <iostream>
#include <cstring>
using namespace std;
#define MAX_NUM 400000
#define PRIME_NUM 10010
int main(void)
{
    int tmp[MAX_NUM];
    memset(tmp,0,sizeof(tmp));
    int prime[PRIME_NUM];
    for(int i=2;i<MAX_NUM;i++)
    {
        tmp[i]=i;
    }
    for(int j=2;j<MAX_NUM/2;j++)
    {
        if(tmp[j]!=0)
        {
            for(int k=j+j;k<MAX_NUM;k+=j)
            {
                tmp[k]=0;
            }
        }
    }
    int cnt=0;
    for(int i=2;i<MAX_NUM;i++)
    {
        if(tmp[i]!=0)
        {
            prime[cnt]=tmp[i];
            cnt++;
        }
    }
    int m,n;
    cin>>m>>n;
    int ans=1;
    for(int i=m-1;i<=n-1;i++)
    {
        if(i==(n-1)||ans%10==0)
        {
            cout<<prime[i]<<endl;
            ans=1;
        }
        else
        {
            cout<<prime[i]<<" ";
            ans++;
        }
    }
    return 0;
}

 

posted @ 2017-02-05 23:52  Num.Zero  阅读(166)  评论(0编辑  收藏  举报