Sieb des Eratosthenes
Finden Sie alle Primzahlen bis zu einer gegebenen Zahl n mit dem Sieb des Eratosthenes: Erstellen Sie eine Liste von Zahlen von 2 bis n und streichen Sie dann alle Vielfachen jeder Primzahl beginnend mit 2. Gehen Sie dabei so vor, dass Sie die nächsthöhere Zahl, die nicht gestrichen wurde, als nächste Primzahl identifizieren und deren Vielfache streichen, bis Sie alle Zahlen bis n überprüft haben.
Der Algorithmus kann in folgenden Schritten zusammengefasst werden:
- Erstellen Sie eine Liste von Zahlen von
2bisn. - Setzen Sie einen Zeiger auf die erste Zahl in der Liste (beginnend mit
2). - Streichen Sie alle Vielfachen der Zahl, auf die der Zeiger zeigt.
- Bewegen Sie den Zeiger zur nächsten Zahl, die nicht gestrichen wurde.
- Wiederholen Sie die Schritte 3 und 4, bis der Zeiger die Quadratwurzel von
nüberschreitet. - Die verbleibenden nicht gestrichenen Zahlen in der Liste sind die Primzahlen bis
n.
Warum ist das eine Aufgabe für Parallele Programmierung? Weil das Streichen der Vielfachen für verschiedene Primzahlen unabhängig voneinander durchgeführt werden kann. Dies ermöglicht es, mehrere Threads oder Prozesse zu verwenden, um die Vielfachen gleichzeitig zu streichen, was die Ausführungszeit des Algorithmus erheblich verkürzen kann, insbesondere bei großen Werten von n.
Verwenden Sie Datenstrukturen, die den gleichzeitigen Zugriff durch mehrere Threads unterstützen, sonst könnten Datenkorruptionen auftreten.