PAT B1013 數素數 20 (20 分)

2021-08-22 03:28:04 字數 848 閱讀 3395

令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

我們預先生成乙個素數表,存入陣列,然後在按要求直接從陣列中讀出要求輸出的下標為m~n的素數。

至於素數表如何生成:  我們先生成乙個hash表,初始為false,下標代表這個數本身;其次,用乙個陣列prime來儲存得到的素數,i從2開始遍歷知道maxlen(上限),先刪除掉所有範圍內的i的倍數,如果編譯到i時,hash[i]為false,則我們說,i沒有從2~i-1的因數,則i為素數,儲存至prime陣列。

#include const int maxlen = 1000004;

bool p[maxlen]=;

int prime[maxlen],primcount = 0;

void fineprime()

fineprime();

int count = 0;

for(int i=m;i<=n;i++)

PAT B 1013 數素數 (20 分)

令 pi表示第 i 個素數。現任給兩個正整數 m n 10 4,請輸出 p m到 p n的所有素數。輸入格式 輸入在一行中給出 m 和 n,其間以空格分隔。輸出格式 輸出從 pm到 pn的所有素數,每 10 個數字佔 1 行,其間以空格分隔,但行末不得有多餘空格。輸入樣例 5 27 輸出樣例 11 ...

PAT B1013 數素數 (20 分

1013 數素數 20 分 令 p i 表示第 i 個素數。現任給兩個正整數 m n 10 4 請輸出 p m 到 p n 的所有素數。輸入在一行中給出 m 和 n,其間以空格分隔。輸出從 p m 到 p n 的所有素數,每 10 個數字佔 1 行,其間以空格分隔,但行末不得有多餘空格。5 2711...

PAT B1013 數素數 20 分

這道題目,有一點需要注意的就是,找出乙個包含了10000個素數的範圍,下面提供一下簡單的 這段 基本上包含三個部分 1.怎麼判斷乙個數是素數 2.怎麼判斷某個範圍內的數哪些是素數,並且儲存下來 第一點和第二點都可以參考我的另一篇部落格 3.在主函式裡面輸出,保證格式正確 分成以上三點進行思考,可以保...