厄拉多塞素數篩選法

2022-08-19 22:09:11 字數 734 閱讀 1027

素數,即為只能被1和它本身整除的正整數,其中1不為正整數,素數又稱質數。

從2開始累加,同時對2進行標記素數,然後把2的其他倍數都去掉(或者標記為非素數),然後找到下乙個沒有標記的數,將其標記為素數,同時把它的其他倍數都去掉(或者標記為非素數)。如此反覆,知道標記完所有的數,這樣便找出了所有的素數。

計數質數

統計所有小於非負整數 n 的質數的數量。

示例:

輸入: 10

輸出: 4

解釋: 小於 10 的質數一共有 4 個, 它們是 2, 3, 5, 7 。

**:

int countprimes(int n) {

int size=0;

vectorprime(n,false);

for(int i=2;i用6n±1法求素數。

任何乙個自然數,總可以表示成為如下的形式之一:

6n,6n+1,6n+2,6n+3,6n+4,6n+5 (n=0,1,2,…)

顯然,當n≥1時,6n,6n+2,6n+3,6n+4都不是素數,只有形如6n+1和6n+5的自然數有可能是素數。所以,除了2和3之外,所有的素數都可以表示成6n±1的形式(n為自然數)。

根據上述分析,我們可以構造另一面篩子,只對形如6 n±1的自然數進行篩選,這樣就可以大大減少篩選的次數,從而進一步提高程式的執行效率和速度。

厄拉多塞篩法

簡介 1 厄拉多塞篩法 簡介 西元前250年,希臘數學家厄拉多塞 eeatosthese 想到了乙個非常美妙的質數篩法,減少了逐一檢查每個數的的步驟,可以比較簡單的從一大堆數字之中,篩選出質數來,這方法被稱作厄拉多塞篩法 sieve of eeatosthese 具體操作 先將 2 n 的各個數放入...

厄拉多塞篩法

厄拉多塞篩演算法 eratosthenes sieve 是一種求素數的方法,由古希臘數學家厄拉多塞提出。它的原理是,給定乙個數 n,從 2 開始依次將 sqrt 以內的素數的倍數標記為合數,標記完成後,剩餘未被標記的數為素數 從 2 開始 如此可省去檢查每個數的步驟,使篩選素數的過程更加簡單。厄拉多...

求素數(厄拉多塞篩法 暴力列舉法)

首先 找出第乙個素數,把他的倍數賦值為0 其次 找出其後第乙個不為0的數,該數為素數,把他的倍數賦值為0 最後 重複上述步驟.篩選法也叫厄拉多塞篩法,因為素數的倍數必然不是素數,所以把素數的倍數全置為0,用乙個新的陣列儲存那些不為0 的數,即為素數 include include void putp...