題目鏈結 nyoj187
【題目】
時間限制:
1000 ms | 記憶體限制:
65535 kb
難度: 3
描述 現在給你乙個正整數n,要你快速的找出在2.....n這些數裡面所有的素數。
輸入給出乙個正整數數n(n<=2000000)
但n為0時結束程式。
測試資料不超過100組
輸出將2~n範圍內所有的素數輸出。兩個數之間用空格隔開
樣例輸入
51011
0
樣例輸出
2 3 52 3 5 7
2 3 5 7 11
**經典題
【第一種(直接bool陣列判斷是否是prime)】804ms
#include #include #include #define maxn 2000000
bool prime[maxn+1];
inline void out(int x)
void getprime()
}int main()
return 0;
}
【第二種(prime數字順序儲存每乙個素數並在prime[0]儲存2~n範圍內有幾個素數)】676ms
#include #include #include #define maxn 2000000
int prime[maxn+1];
inline void out(int x)
void getprime() }}
int main()
return 0;
}
關於素數的快速查詢 素數篩選法
利用素數篩選法進行素數的快速查詢。原理很簡單,素數一定是奇數,素數的倍數一定不是素數。思路如下 預定義n表示10000,即表示查詢10000以內的素數,首先定義陣列prime對n以內的數進行標記,奇數存為1,偶數存為0,最終實現結果為素數的prime值為1,因此將prime 2 賦值為1 2是素數 ...
快速查詢素數
題目 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 現在給你乙個正整數n,要你快速的找出在2.n這些數裡面所有的素數。輸入給出乙個正整數數n n 2000000 但n為0時結束程式。測試資料不超過100組 輸出將2 n範圍內所有的素數輸出。兩個數之間用空格隔開 樣例輸入 5...
快速查詢素數
快速查詢素數 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述現在給你乙個正整數n,要你快速的找出在2.n這些數裡面所有的素數。輸入給出乙個正整數數n n 2000000 但n為0時結束程式。測試資料不超過100組 輸出將2 n範圍內所有的素數輸出。兩個數之間用空格隔開 樣例輸...