關於素數的快速查詢 素數篩選法

2022-08-26 19:39:14 字數 545 閱讀 3925

利用素數篩選法進行素數的快速查詢。

原理很簡單,素數一定是奇數,素數的倍數一定不是素數。

思路如下:

預定義n表示10000,即表示查詢10000以內的素數,首先定義陣列prime對n以內的數進行標記,奇數存為1,偶數存為0,最終實現結果為素數的prime值為1,因此將prime[2]賦值為1(2是素數)。之後利用for迴圈,對n以內的奇數進行遍歷(注意for迴圈的條件控制),for裡用if判斷是否為素數(奇數),若是,執行內部巢狀的for迴圈判斷該奇數是否為素數,若是則標記為1,若不是則prime置為0,之後再用if判斷是否為素數,若是,則利用迴圈將該素數的倍數,都標記為0,意在體現,素數的倍數一定不是素數,注意for迴圈內部的條件:for(j=2*i;j

**如下,利用c語言實現:

#include#include#define n 10000

int prime[n];

int main()

prime[2]=1;//2是素數

for(i=3;i這一演算法理解之後較為簡單,主要難點在於for迴圈的應用,條件的判斷,邏輯必須要清晰!

快速查詢素數

題目 時間限制 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範圍內所有的素數輸出。兩個數之間用空格隔開 樣例輸...

快速查詢素數

我們以前判斷素數是從2到這個數的平方根一直檢查是否是素數。include include include includeusing namespace std int main if f 1 printf yes n else printf no n 現在如果數很大的話我們可以把每個數的倍數去掉就行...