Der n-Primzahltest
DIE PRIMZAHLENSERIE
Beitrag 7
Der n-Primzahltest
Dieser Primzahltest ist kein Wahrscheinlichkeitstest, sondern ein indirekter Test, der eindeutig bestimmt, ob eine gewählte ungerade Zahl größer 1 eine Primzahl ist oder nicht.
Er basiert auf der Definition 6 aus Beitrag 1, Primzahldefinitionen:
Da es unendlich viele Primzahlen gibt und nur eine gerade Primzahl, nämlich 2, muß es unendlich viele ungerade Primzahlen geben. Daher folgende Definition für alle Primzahlen größer 2:
Eine Primzahl größer 2 ist eine ungerade Zahl U größer 2, die durch keine ungerade Zahl u im Bereich
![]()
ohne Rest teilbar ist.
Daher werden für diesen Test nur ungerade Zahlen > 1 verwendet.
Mit
ᴧ n ∈ ℕ
sind alle ungeraden Zahlen > 1 gegeben, die für diesen Test ausgewählt werden können.
Aufgelöst nach n ergibt sich
![]()
Das ermittelte n wird dann in die folgende Testfunktion t(n) eingesetzt:
![]()
mit
![]()
wobei n ∈ ℕ und n ≥ 1 sowie k ∈ ℕ und k ≥ 0.
Legende:
Produkt, in dem die Laufvariable k von 0 bis kmax läuft
|x| Absolutwert von einem beliebigem Wert x
⌊x⌋ untere Gaußklammer, x abgerundet auf die nächste ganze Zahl
⌈x⌉ obere Gaußklammer, x aufgerundet auf die nächste ganze Zahl
Für ein gewähltes n>0 aus der Menge der natürlichen Zahlen ist t(n) entweder 0 oder 1.
Ist t(n)=0, dann ist 2n+3 für das gewählte n nicht prim.
Ist t(n)=1, dann ist 2n+3 für das gewählte n prim.
Beweis:
In Beitrag 6 wurde bewiesen, daß die Formel
nkm = 2k²+6k+3+m(2k+3) ʌ k, m ∈ ℕ
diejenigen n liefert, die in der Formel 2n+3 alle zusammengesetzten, ungeraden Zahlen größer 2 ergeben.
Bestimmt man nun alle nkm, die in der Nähe von einem gewählten n liegen, läßt sich feststellen, ob es ein nkm gibt, für das gilt:
n = nkm
oder ob es kein nkm gibt, das dem n gleich ist, also:
n ≠ nkm
Um dies deterministisch festzustellen, ist es erforderlich, alle nkm von k=0 bis kmax zu ermitteln. Für die Größe m reicht es, wenn nur das mmax in Abhängigkeit von k im Bereich von 0 bis kmax verwendet wird. Die Größe mmax ist das m, das für das jeweilige k im Bereich von 0 bis kmax, den nkm-Wert bestimmt, der dem gewählten n in Abhängigkeit von k am nächsten und im Extremfall sogar gleich kommt.
Doch wie groß sind die Werte kmax und mmax?
Zunächst zu kmax:
Gemäß Definition 6, Beitrag 1 gilt:
Eine Primzahl größer 2 ist eine ungerade Zahl U größer 2, die durch keine ungerade Zahl u im Bereich
![]()
ohne Rest teilbar ist.
Setzt man
ᴧ n ∈ ℕ
und
ᴧ k ∈ ℕ
in
![]()
ergibt dies
![]()
Die Lösungen für k bei einem gewählten n reichen von k=0 bis k=kmax für n, k ∈ ℕ.
Da wir kmax also als natürliche Zahl bestimmen wollen, aber bei der Auflösung nach k für k in den reellen Zahlenbereich kommen, schreiben wir zur besseren Unterscheidung:
![]()
Aufgelöst nach
ergibt sich folgende Lösung:
![]()
Die reelle Lösung für
kann durch Auf- oder Abrunden wieder in den Bereich der natürlichen Zahlen zurückgeführt werden.
In unserem Fall ist gemäß Definition 6 aus Beitrag 1 abzurunden.
Außerdem soll
![]()
sein. Der Grund hierfür ist, daß die Funktion
![]()
sein soll.
Und dies muß auch der Fall sein für
![]()
Dadurch brauchen für den Test nicht mehr alle m in nkm verwendet werden, sondern nur noch mmax in Abhängigkeit von k.
Da k und damit auch kmax ≥ 0 sein muß und kmax
für n=1 und n=2 negativ wäre, wird
![]()
als Absolutwert berechnet.
Somit ergibt sich für kmax
![]()
Der Term
![]()
kann nur die Werte 0 oder 1 annehmen, wenn
→ ![]()
→ ![]()
wird wie folgt ausgeschlossen:
Ersetzt man in der Formel
nkm = 2k²+6k+3+m(2k+3) ʌ k, m ∈ ℕ
nkm durch ein beliebiges n ∈ ℕ und bleibt k im natürlichen Zahlenbereich wird m zur reellen Zahl ![]()
Auflöst nach
, ergibt sich
![]()
Da die Lösung für mmax ganzzahlig sein muß und
sein soll, ist
abzurunden. Somit erhalten wir
![]()
Eingesetzt in die Formel für nkm, ergibt
![]()
Dies wiederum eingesetzt in
![]()
ergibt
![]()
Dieser Term kann nur die Werte 0 oder 1 annehmen, da
ist.
Ist dieser Term 0, ergibt das gewählte n in der Formel 2n+3 keine Primzahl, sondern eine zusammengesetzte, ungerade Zahl.
Ist dieser Term 1, kann das gewählte n in der Formel 2n+3 eine Primzahl ergeben, muß aber nicht.
Bildet man aber das Produkt für alle k von 0 bis kmax und ist dieses Produkt nicht 0, sondern 1, dann ist mit diesem deterministischen Primzahltest eindeutig sichergestellt, daß 2n+3 eine Primzahl ist. Ist aber in diesem Produkt mindestens ein Faktor 0, dann ist das gesamte Produkt 0, und es ist mit diesem deterministischen Primzahltest eindeutig sichergestellt, daß 2n+3 für das gewählte n keine Primzahl ergibt.
Der Term
![]()
läßt sich umformen mit
![]()
in
![]()
und mit
![]()
in
![]()
und weiter in
![]()
Da k+1 immer eine ganze Zahl ist, erübrigt sich das Abrunden.
Somit ergibt sich
![]()
und weiter
![]()
und weiter
![]()
Dies läßt sich umformen in
![]()
Nun ist es aber erforderlich, daß das Produkt für alle k von 0 bis kmax gebildet wird, damit dieser Primzahltest deterministisch und damit eindeutig ist. Dies ist der Fall, wenn
![]()
mit
![]()
Was zu beweisen war.
Beispiele:
n=1 → t(1)=1 → 2*1+3=5 → prim
n=10 → t(10)=1 → 2*10+3=23 → prim
n=97 → t(97)=1 → 2*97+3=197 → prim
n=1001 → t(1001)=0 → 2*1001+3=2005 → nicht prim
n=30997 → t(30997)=0 → 2*30997+3=61997=13*19*251 → nicht prim
n=30103 → t(30103)=1 → 2*30103+3=60209 → prim
Die folgende Tabelle zeigt die Ergebnisse von n=1 bis n=20:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 |
Folgende Tabelle zeigt die Ergebnisse von n=1470 bis n=1480:
| 1470 | 1471 | 1472 | 1473 | 1474 | 1475 | 1476 | 1477 | 1478 | 1479 | 1480 |
| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 |
München, 24. Oktober 2022
Gottfried Färberböck

