NYOJ 快速查詢素數

2021-07-26 10:16:42 字數 977 閱讀 9432

時間限制:1000 ms  |  記憶體限制:65535 kb

難度:3 描述

現在給你乙個正整數n,要你快速的找出在2.....n這些數裡面所有的素數。

輸入給出乙個正整數數n(n<=2000000)

但n為0時結束程式。

測試資料不超過100組

輸出將2~n範圍內所有的素數輸出。兩個數之間用空格隔開

樣例輸入

5

1011

0

樣例輸出

2 3 5

2 3 5 7

2 3 5 7 11

#include #include #include //埃拉託斯特尼篩

#define max 2000005

int prime[max];

/*拓展 --> 篩法求素數:篩選法又稱篩法,具體做法是:先把n個自然數按次序排列起來。1不是質數,也不是合數,要划去。

第二個數2是質數留下來,而把2後面所有能被2整除的數都劃去。

2後面第乙個沒劃去的數是3,把3留下,再把3後面所有能被3整除的數都劃去。

3後面第乙個沒劃去的數是5,把5留下,再把5後面所有能被5整除的數都劃去。

這樣一直做下去,就會把不超過n的全部合數都篩掉,留下的就是不超過n的全部質數。

因為希臘人是把數寫在塗臘的板上,每要劃去乙個數,就在上面記以小點,

尋求質數的工作完畢後,這許多小點就像乙個篩子,所以就把埃拉託斯特尼的方法叫做「埃拉託斯特尼篩」,簡稱「篩法」。

(另一種解釋是當時的數寫在紙草上,每要劃去乙個數,就把這個數挖去,尋求質數的工作完畢後,這許多小洞就像乙個篩子。)

*/using namespace std;

int main(void)

int n = 1;

while (n)

return 0;

}

NYOJ 快速查詢素數

快速查詢素數 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 現在給你乙個正整數n,要你快速的找出在2 n這些數裡面所有的素數。輸入 給出乙個正整數數n n 2000000 但n為0時結束程式。測試資料不超過100組 輸出 將2 n範圍內所有的素數輸出。兩個數之間用空格隔開 ...

NYOJ 187 快速查詢素數

時間限制 1000 ms 記憶體限制 65535 kb 描述 現在給你乙個正整數n,要你快速的找出在2.n這些數裡面所有的素數。輸入給出乙個正整數數n n 2000000 但n為0時結束程式。測試資料不超過100組 輸出將2 n範圍內所有的素數輸出。兩個數之間用空格隔開 樣例輸入 5 1011 0 ...

快速查詢素數

題目 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 現在給你乙個正整數n,要你快速的找出在2.n這些數裡面所有的素數。輸入給出乙個正整數數n n 2000000 但n為0時結束程式。測試資料不超過100組 輸出將2 n範圍內所有的素數輸出。兩個數之間用空格隔開 樣例輸入 5...