1. 程式人生 > >PAT 1013 數素數

PAT 1013 數素數

nbsp brush pro 空格 highlight print %d 個數 scan

https://pintia.cn/problem-sets/994805260223102976/problems/994805309963354112

令P~i~表示第i個素數。現任給兩個正整數M <= N <= 10^4^,請輸出P~M~到P~N~的所有素數。

輸入格式:

輸入在一行中給出M和N,其間以空格分隔。

輸出格式:

輸出從P~M~到P~N~的所有素數,每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 <bits/stdc++.h>

using namespace std;

const int maxn=2e5+10;
int a[maxn];

int A(int n)
{
    for(int i=2;i*i<=n;i++)
    {
        if(n%i==0)
            return 0;
    }
    return 1;
}

int main()
{
    int cnt=0;
    for(int i=2;i<=maxn;i++)
    {
        if(A(i)==1)
        {
            cnt++;
            a[cnt]=i;
        }
    }
    //cout<<cnt<<endl;
    int M,N;
    scanf("%d%d",&M,&N);
    for(int i=M;i<N;i++)
    {
        if((i-M)%10==9)
            printf("%d\n",a[i]);
        else
            printf("%d ",a[i]);
    }
    printf("%d",a[N]);
    return 0;
}

  

PAT 1013 數素數