1. 程式人生 > >1003 數素數 (C++)

1003 數素數 (C++)

數素數

題目描述

令Pi表示第i個素數。現任給兩個正整數M <= N <= 10000,請輸出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. 此題筆者認為有兩點需要注意,一是素數判定,二是格式輸出
  2. 對於素數判定,已經有很多概述了
  3. 對於格式判定,筆者採用的是,先用一個變數first判斷素數是否是每行首個元素,如果是則輸出該元素,否則輸出空格+該元素,同時每行最多上線10個元素,用flg判定
//虛擬碼
//zhicheng
bool is_Prim(int n)
{
    for(i->n/i)
    {
        if(n%2==0) return false;
    }
    return true;
}

int main()
{
    input-->m,n;
    int flg=1,first=1;
    for(i=2;;i++)
    {
        判斷是否為素數,如果是則進行下面操作
        if(判斷是否第[m,n]個素數==true)
        {
            if(該行已經達到10個元素){換行;first,flg重新指該行第一個元素;}
            if
(first指向該行首元素) { 輸出該元素;first,flg指向下一個元素;} else {輸出空格+該元素,flg指向下一個元素;} } } }

日常更新,如有問題請指正
傳送門:程式碼連結