Elementare Zahlentheorie - sigma

Werbung
Elementare Zahlentheorie
Vorlesung 08
13.11.2006
Dieses Dokument wurde von der Homepage www.sigma-mathematics.de runtergeladen. Es darf zu nichtkommerziellen Zwecken verwendet und frei weitergegeben werden. Jeglicher Mißbrauch ist untersagt. Ich
hafte nicht für eventuelle Schäden, die durch Verwendung dieses Dokuments auftreten. Sollte das Dokument
Fehler enthalten, so melden Sie diese bitte an
[email protected].
§5
Zur Primzahlverteilung
Schreibweise. Für k ∈ N sei pk die k-te positive Primzahl, d.h. P = {p1 , p2 , p3 , . . . } mit p1 < p2 < p3 < . . ..
Fundamentales Problem (Primzahltest).
Gegeben: n ∈ N. Frage: n ∈ P?
(1.47) Bemerkung. Sei n ∈ N, n > 1.
(a) Ist n zusammengesetzt, dann existiert ein p ∈ P mit p ≤
√
n und p | n.
(b) Algorithmus (Primzahltest durch Probedivision):
Eingabe: n ∈ N, n > 1.
Ausgabe: „n ∈ P“ oder „n ∈
/ P“.
Begin
k := 1;
√
While pk ≤ n do
If n mod pk = 0
Return("n ∈
/ P");
Fi;
k := k + 1;
End While;
Return("n ∈ P");
End.
(1.48) Bemerkung.
√
zahlen ≤ n.
(a) Um den Algorithmus in (1.47)(b) durchzuführen, benötigen wie die Liste der Prim-
(b) √
Falls n ∈ P, muss der Algorithmus für alle p ∈ P, p ≤
n}?
√
n testen, ob p | n gilt. Wie groß ist {p ∈ P | p ≤
Die erste Aufgabe aus (1.48) kann mit Hilfe des Siebes von Eratosthenes erledigt werden, die zweite Aufgabe
mit dem Primzahlsatz.
(1.49) Algorithmus (Sieb des Erotosthenes). Eingabe: S ∈ N, S ≥ 2.
Ausgabe: p1 , . . . , pk ∈ P mit pk = max{p ∈ P | p ≤ S}.
Begin
Initialisiere Liste L mit {1, 2, . . . , S}, streiche 1;
Setze p0 := 1;
Führe für i = 1, 2, 3, . . . folgende Schritte durch:
i-ter Schritt: pi := kleinste noch nicht gestrichene Zahl > pi−1 aus L;
1
www.sigma-mathematics.de/semester8/elmzth/vorlesungen/vorlesung08.pdf
2
Ist p2i > S, beende den Algorithmus;
sonst streiche alle (noch nicht gestrichenen) Vielfachen von pi aus L;
End.
(1.50) Bemerkung. Algorithmus (1.49) terminiert (klar). Die nicht gestrichenen Zahlen sind genau die Primzahlen ≤ S.
Beweis. Die im i-ten Schritt (i ≥ 1) definierte Zahl pi ist die i-te Primzahl (Induktion über i). Ist 2 ≤ q ≤ S
nicht gestrichen, dann ist q ∈ P (sonst existierte ein pj ∈ P mit p2j ≤ q ≤ S und pj | q, vgl. (1.47)(a) und
q wäre im j-ten Schritt gestrichen worden). Ist q ∈ P, 2 ≤ q ≤ S, dann ist q nicht gestrichen, denn nur
zusammengesetzte Zahlen werden gestrichen.
Beispielhafte GAP-Implementation (einer Variante) von Algorithmus (1.49);
Begin
P := [0, 1, . . . 1]; Liste der Länge S, 0: gestrichen, 1: ungestrichen
i := 1;
while i2 ≤ S do
while p[i] = 0 do
i = i + 1; Hier wird die nächste noch nicht gestrichene Zahl gesucht: i.
od;
j := 2i; Hier werden die Vielfachen 2i, 3i, . . . vor i gestrichen.
while j ≤ S do
P [j] := 0;
j := j + 1;
od;
od; Die i-te 1 in P steht an Position pi .
End.
Zugehörige Unterlagen
Herunterladen