|
|
| Table of contents |
|
2 Laufzeit 3 Literatur |
Der Algorithmus bassiert auf einem Satz, der in nachfolgendem Expertenbereich genauer erläutert ist. Im Wesentlichen beschreibt der Satz, wie man eine Zahl faktorisiert, die das Produkt von genau zwei Primzahlen ist.
{| border=1 style="border:0px"
| style="border:1px" |
| style="border:1px solid #448800; padding:0; background-color:#EEFFEE" |
Satz (von Lehman)
Ist n=pq eine ungerade natürliche Zahl, sind p und q Primzahlen und ist 1 ≤ r < n1/2 mit ((n/(r+1))1/2 < p ≤ n1/2, so gibt es natürliche Zahlen x, y und k mit den folgenden Eigenschaften:
Die optimale Wahl von r ist r = O(n1/3)
| style="border:1px" |
|}
Der Algorithmus prüft zunächst durch Probedivision bis n1/3, ob die Zahl aus mehr als zwei Faktoren besteht. Ist dies nicht der Fall, so wird der Satz von Lehman benutzt, indem nach Zahlen x, y und k wie im Satz gesucht wird. Der Algorithmus sieht dann wie folgt aus:
Führe Probedivision bis n1/3 aus und beende falls ein Teiler gefunden wurde.
Für 1 ≤ k ≤ n1/3 und
für (4kn)1/2 ≤ x &le (4kn)1/2 + n1/6/4k1/2
überprüfe, ob y2 := x2-4kn eine Quadratzahl ist.
Falls ja, ist ggT(x+y,n) ein echter Teiler von n.
Falls kein Teiler gefunden wurde ist n eine Primzahl.
Lehman benutzt zudem eine Liste mit quadratischen Resten modulo 729 um die Überprüfung auf Quadratzahl für etliche Zahlen zu beschleunigen.
Die Methode von Lehman benötigt O(n1/3log log n) viele Schritte. Lehman selbst kommt im unten genannten Artikel auf eine Laufzeit von O(n1/3). Er geht dabei aber davon aus, dass man die Wurzel einer Zahl in konstanter Zeit berechnen kann, was eher unrealistisch ist.
Funktionsweise
Ist n prim, so gibt es solche x, y und k nicht. Algorithmus zur Faktorisierung einer Zahl nach Lehman.
Für die Praxis lässt sich das Verfahren noch etwas beschleunigen, indem man zum einen die beiden zusätzlichen Kongruenzen im Satz von Lehman ausnutzt und indem man die Zahlen k in einer anderen Reihenfolge durchläuft, bei der Zahlen mit vielen kleinen Primfaktoren zuerst untersucht werden.Laufzeit
Literatur
Enciclopedia On Line:
GNU FDL.