1. 程式人生 > >PAT_B_1013 數素數 (20 分)【格式錯誤問題】【某個測試點未通過問題】

PAT_B_1013 數素數 (20 分)【格式錯誤問題】【某個測試點未通過問題】

令 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 <iostream>
#include <math.h>
using namespace std;
bool sushu(int n);
int main()
{
    int m,n;
    cin>>m>>n;
    int count=0;
    int row=1;
    int i=2;
    while(count<=n)      //開始的時候用的是for 迴圈遍歷 10^4內的素數,題目理解問題
    {
        if(sushu(i))
        {
            count++;
            if(count>=m)
            {
                if(count>n) break;
                if(count<n)          //最後一個數之後也不能有空格
                {
                    if(row%10)
                    {
                        cout<<i<<" ";
                    }else
                    {
                        cout<<i<<endl;
                    }
                    ++row;
                }else{
                    cout<<i;
                }
            }
        }
        ++i;
    }
    return 0;
}
bool sushu(int n)
{
    int nn=sqrt(n);
    for(int i=2;i<=nn;i++)
    {
        if(n%i==0) return false;
    }
    return true;
}