Miniprojekt 4

Werbung
Computerorientierte Mathematik
WS 2010/2011
Prof. Dr. Thomas Gerstner
Miniprojekt 4
Abgabe bis Freitag, 11.2.
Sieb des Eratosthenes
Das Sieb des Eratosthenes ist ein Algorithmus, der alle Primzahlen kleiner gleich einer vorgegebenen Zahl Z
ausgibt. Zu Beginn werden alle Zahlen 2, 3, . . . , Z aufgeschrieben, wobei die Zahlen zunächst unmarkiert und
somit potentielle Primzahlen sind. Die kleinste unmarkierte Zahl ist automatisch eine Primzahl und wird als solche
markiert. Es werden nun alle Vielfachen dieser Primzahl, die kleiner gleich der Schranke Z sind, als Nichtprimzahlen
markiert. Nun wird wieder die kleinste unmarkierte Zahl gesucht, als Primzahl markiert und deren Vielfache als
Nichtprimzahlen. Beim Markieren der Nichtprimzahlen genügt es dabei mit dem Quadrat der Primzahl zu beginnen.
Der Algorithmus endet, wenn dieses Quadrat größer als Z ist.
(a) Schreibe eine Prozedur mit dem Eingabewert Z (einer Quadratzahl), die mit Hilfe des Siebes
des
√ Eratosthenes
√
zum einen die Primzahlen kleiner gleich Z als Vektor ausgibt und zum anderen eine Z × Z-Matrix mit
dem Wert 0 an der Stelle (1, 1), dem Wert 1 für eine Primzahl und an den restlichen Stellen mit der Primzahl
mit deren Vielfachen diese Stelle als Nichtprimzahl markiert wurde.
Für Z = 36 erhält man die folgende Matrix:


0 1 1 2 1 2
1 2 3 2 1 3


1 2 3 2 1 3


1 2 3 2 1 3


5 2 3 2 1 5
1 2 3 2 5 3
Teste deine Prozedur für Z = 100.
(b) Warum genügt es beim Markieren der Nichtprimzahlen mit dem Quadrat der Primzahl zu beginnen?
(c) Der Rechenaufwand des Siebes des Eratosthenes (also die Anzahl der Markierungen) ist von der Ordnung
Z log(Z)
O( log(log(Z))
). Modifiziere deine Prozedur, so dass sie den Rechenaufwand bestimmt und vergleiche ihn mit
der theoretischen Ordnung für Z = 4i und i = 2, 3, . . . , 9.
(d) Schreibe ein LaTeX-Dokument mit Titelseite, deinem Programm aus Teilaufgabe (a) und (c), einer Dokumentation des Programmes, sowie den Ergebnissen und Grafiken aus den Aufgaben (a) bis (c).
Gesamtpunktzahl: 30 Punkte
Herunterladen