令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.在主函式裡面輸出,保證格式正確 分成以上三點進行思考,可以保...