天天看點

PAT乙級—1013. 數素數 (20)-native

令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

思路:從1找起,并記錄下為第幾個素數,若在M和N之間,則輸出。注意行尾無空格。

#include<iostream>
#include<cmath> 
using namespace std;
int main()
{
    int n,m,count=,i=;
    int j,last;
    cin>>n>>m;
    while(i++)
    {
        for(j=;j<=sqrt(i);j++)
        {
            if(i%j==) break;
        }
        if(j>sqrt(i)) 
        {
            count++;    //計錄是第幾個素數 
            if((count-n)%==&&count>n)//從第n個開始已經輸出了10個則換行 
            {   //count不能等于n,等于行則會輸出空行 
                cout<<endl; 
            } 
            if(count>=n)//從第n個開始輸出 
            cout<<i;
            if(count==m) break;//到第m個為止 
            if(count>=n&&(count-n+)%!=)//行尾無空格 
            cout<<" ";
        }
    }

    return ;
}
           

題目連結:

https://www.patest.cn/contests/pat-b-practise/1013