埃拉託色尼篩選法 演算法

2021-06-22 21:32:03 字數 765 閱讀 9196

埃拉託色尼篩選法

埃拉託色尼選篩法(the sieve of eratosthenes)簡稱埃氏篩法,是古希臘數學家埃拉託色尼(eratosthenes 274b.c.~194b.c.)提出的一種篩選法。是針對自然數列中的自然數而實施的,用於求一定範圍內的質數,它的容斥原理之完備性條件是p=h~

(1)先把1刪除(現今數學界1既不是質數也不是合數)

(2)讀取佇列中當前最小的數2,然後把2的倍數刪去

(3)讀取佇列中當前最小的數3,然後把3的倍數刪去

(4)讀取佇列中當前最小的數5,然後把5的倍數刪去

(5)如上所述直到需求的範圍內所有的數均刪除或讀取

注:此處的佇列並非資料結構佇列,如需保留運算結果,處於儲存空間的充分利用以及大量刪除操作的實施,建議採用鍊錶的資料結構。

下面是  c  語言實現的

#include

#define true 1

#define false 0

#define size 10000

int main()

a[0] = a[1] = false; /*設定前面兩個不是質數的數的狀態為false*/

i = 2;

while(i < size)

[span]for(k = 2; j*k < size && i < size;++k)

[span]}

for(p = a; p < a+size; ++p) }

printf("\n");

return 0; }

埃拉託色尼篩選法

埃拉託色尼篩選法 the sieve of eratosthenes 簡稱埃氏篩法,是古希臘數學家埃拉託色尼 eratosthenes 提出的一種篩選法。是針對自然數列中的自然數而實施的,用於求一定範圍內的質數。埃氏篩法步驟編輯 1 先把1刪除 現今數學界1既不是質數也不是合數 2 讀取佇列中當前最...

埃拉託色尼質數篩選法

以前夏季學期的時候接觸過埃氏篩選法,不過自己當時不太理解。今天看的時候有點感覺,大概用到的是每個合數都能寫成幾個質數相乘的格式,因此如果不能被比該數小的質數整除的話,該書一定也是質數。並且我們已知2是最小的質數,所以從2開始篩選。以下程式可以輸出不超過n的所有質數。當然鑑於陣列的大小是有限的,因此n...

演算法基礎 關於埃拉託色尼篩選法

這幾天在學習演算法和資料結構,在學習基本資料結構陣列的時候 陣列就是最基本的資料結構 偶然看到了一種利用陣列求素數的方法,就是用的埃拉託色尼篩選法 那麼埃拉託色尼篩選法到底是什麼方法呢?具體的思想是這樣的,假定我們要求一定範圍內的素數,那麼我可以這樣做 從2開始,在範圍內把2的倍數刪除或者標記,然後...