Sieb des Eratosthenes

Das Sieb des Eratosthenes ist ein Algorithmus zur Bestimmung einer Liste oder Tabelle aller Primzahlen kleiner oder gleich einer vorgegebenen Zahl. Er ist nach dem griechischen Mathematiker Eratosthenes von Kyrene benannt.

Inhaltsverzeichnis

Funktionsweise

Zunächst werden alle Zahlen 2, 3, 4,… bis zu einem frei wählbaren Maximalwert S aufgeschrieben. Die zunächst unmarkierten Zahlen sind potentielle Primzahlen. Die kleinste unmarkierte Zahl ist immer eine Primzahl. Nachdem eine Primzahl gefunden wurde, werden alle Vielfachen dieser Primzahl als zusammengesetzt markiert. Es genügt dabei, mit dem Quadrat der Primzahl zu beginnen, da alle kleineren Vielfachen bereits markiert sind. Sobald das Quadrat der Primzahl größer als die Schranke S ist, sind alle Primzahlen kleiner oder gleich S bestimmt: Es sind die nicht markierten Zahlen.

Das Verfahren beginnt also damit, die Vielfachen 4, 6, 8,… der kleinsten Primzahl 2 durchzustreichen. Die nächste unmarkierte Zahl ist die nächst größere Primzahl, die 3. Anschließend werden deren Vielfache 9, 12, 15,… durchgestrichen, usw.

Demonstration

Verfahren, wie die Primzahlen zwischen 2 und 120 ermittelt werden: Erst werden alle Vielfachen von 2 gestrichen, dann alle Vielfachen von 3, 5, und 7. Die Markierungen beginnen jeweils mit dem Quadrat der Primzahl: 4, 9, 25, 49. Da bereits 112 = 121 nicht mehr im Wertebereich liegt, werden ab 11 keine zusammengesetzten Zahlen mehr markiert; alle noch unmarkierten Zahlen sind prim.

Implementierung

Eine beispielhafte Implementierung des Algorithmus:

const N = 10000
var gestrichen: array [2..N] of boolean

{ Initialisierung des Primzahlfeldes: }
{ Alle Zahlen im Feld sind zu Beginn nicht gestrichen. }
for i = 2 to N do
  gestrichen[i] = false
end

i = 2
while i*i <= N
do
  if not gestrichen[i]
  then
    // i ist prim, streiche seine Vielfache mit i*i beginnend:
    for j = i*i to N by i
    do
      gestrichen[j] = true
    end
  // endif
  i = i+1
end

for i = 2 to N do
  if not gestrichen[i] then 
    print i; ", "; 
end

Das Verfahren lässt sich optimieren, wenn nur die ungeraden Zahlen darin abgespeichert werden. Es gibt zwar bessere Verfahren als das Sieb des Eratosthenes (z.B. das Sieb des Atkin), es ist allerdings immer noch optimal, wenn größere Zahlenbereiche nach Primzahlen abgesucht werden sollen.

Literatur

Weblinks

Quelle:
Artikel Sieb des Eratosthenes aus der freien Enzyklopädie Wikipedia mit dieser Versionsgeschichte
Lizenz:
Kategorien:
Bookmarks
delicious wong linkarena google
Sponsoren