„Primzahlgenerator“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Nesevra (Diskussion | Beiträge)
Linkvorschlag-Funktion: 3 Links hinzugefügt.
 
(45 dazwischenliegende Versionen von 16 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Als '''Primzahlgenerator''' bezeichnet man in der [[Informatik]] einen [[Algorithmus]] <math>f(n)</math>, sodass für [[natürliche Zahl]]en <math>n</math> der Wert <math>f(n)</math> die <math>n</math>-te [[Primzahl]] ist. Bisher wurde noch kein effizienter Primzahlgenerator gefunden, insbesondere existiert keine geschlossene Formel zur Generierung von Primzahlen.
Als '''Primzahlgenerator''' bezeichnet man in der [[Informatik]] einen [[Algorithmus]] <math>f(n)</math>, so dass für [[natürliche Zahl]]en <math>n</math> der Wert <math>f(n)</math> die <math>n</math>-te [[Primzahl]] ist. In der [[Mathematik]] und speziell der [[Zahlentheorie]] entspricht das Formeln, die besonders viele Primzahlen liefern '''(Formeln für Primzahlen).''' Bisher wurde noch kein [[Effizienz (Informatik)|effizienter]] Primzahlgenerator gefunden, insbesondere existiert keine praktikable geschlossene Formel zur Generierung von Primzahlen.


Es gibt allerdings Formeln, bei denen eine gewisse Wahrscheinlichkeit besteht, dass die erzeugten Zahlen eine Primzahl sein könnten. Trotzdem müssen die erzeugten Zahlen auf ihre Eigenschaft als Primzahl getestet werden.
Es gibt allerdings Formeln, bei denen eine gewisse Wahrscheinlichkeit besteht, dass eine erzeugte Zahl eine Primzahl ist, so dass die erzeugten Zahlen noch darauf getestet werden müssen, ob sie prim sind. Im Artikel werden auch andere Formeln behandelt, die nicht praxistauglich sind, die aber in der mathematischen Literatur bezüglich der Frage diskutiert wurden, ob sie viele Primzahlen liefern.


== Geschichte ==
== Geschichte ==
Zeile 7: Zeile 7:
Einer der ältesten Algorithmen zur Bestimmung von Primzahlen ist das [[Sieb des Eratosthenes]], bei dem nacheinander aus einer Liste der natürlichen Zahlen diejenigen Zahlen gestrichen werden, die Vielfache der jeweils kleinsten noch nicht gestrichenen Zahl sind. Dadurch bleiben die Primzahlen innerhalb der Ausgangsliste übrig.
Einer der ältesten Algorithmen zur Bestimmung von Primzahlen ist das [[Sieb des Eratosthenes]], bei dem nacheinander aus einer Liste der natürlichen Zahlen diejenigen Zahlen gestrichen werden, die Vielfache der jeweils kleinsten noch nicht gestrichenen Zahl sind. Dadurch bleiben die Primzahlen innerhalb der Ausgangsliste übrig.


Schon [[Leonhard Euler|Euler]] gab die Formeln <math>n^2+n+17</math> und <math>n^2-n+41</math> an, die für <math>0 \leq n < 16</math> bzw. <math>0 \leq n < 41</math> Primzahlen liefern. Auch für größere Werte von <math>n</math> liefern die beiden Formeln viele Primzahlen, weil das Ergebnis nie durch Primzahlen <math>p < 17</math> bzw. <math>p < 41</math> ganzzahlig teilbar ist. Allgemein gibt es viele solche Formeln <math>an^2+bn+c</math>, wodurch sich die auffällige [[Ulam-Spirale]] erklärt.
Schon [[Leonhard Euler|Euler]] gab die Formeln <math>n^2+n+17</math> und <math>n^2-n+41</math> an, die für <math>0 \leq n < 16</math> bzw. <math>0 \leq n < 41</math> Primzahlen liefern. Auch für größere Werte von <math>n</math> liefern die beiden Formeln viele Primzahlen, weil das Ergebnis nie durch Primzahlen <math>p < 17</math> bzw. <math>p < 41</math> ganzzahlig teilbar ist. Allgemein gibt es viele solche Formeln <math>an^2+bn+c</math>, wodurch sich die auffällige [[Ulam-Spirale]] erklärt. Es gibt aber nach [[Adrien-Marie Legendre]] kein [[Polynom]], das für alle Werte der Variablen in den natürlichen Zahlen Primzahlen ergibt (auch nicht ''fast alle'' Primzahlen). Die Frage, welche ganzzahligen Polynome unendlich viele Primzahlen erzeugen, ist Gegenstand der [[Bunjakowski-Vermutung]].


Die beliebteste ist die der [[Mersenne-Primzahl|Mersenne-Zahl]] <math>M_n = 2^n-1</math>, bei der <math>M_n</math> eine Primzahl ist. Durch die besonderen Eigenschaften der Teiler von Mersenne-Zahlen eignen sie sich für die Suche nach möglichst großen Primzahlen.
Die beliebteste ist die der [[Mersenne-Primzahl|Mersenne-Zahl]] <math>M_n = 2^n-1</math>, bei der <math>M_n</math> eine Primzahl ist. Durch die besonderen Eigenschaften der Teiler von Mersenne-Zahlen eignen sie sich für die Suche nach möglichst großen Primzahlen.
Zeile 13: Zeile 13:
[[Pierre de Fermat|Fermat]] vermutete, dass alle Zahlen der Form <math>2^{2^n}+1</math> prim sind; man nennt sie [[Fermat-Zahl]]en. Tatsächlich ist aber für <math>n>4</math> keine derartige Primzahl bekannt.
[[Pierre de Fermat|Fermat]] vermutete, dass alle Zahlen der Form <math>2^{2^n}+1</math> prim sind; man nennt sie [[Fermat-Zahl]]en. Tatsächlich ist aber für <math>n>4</math> keine derartige Primzahl bekannt.


Auch bekannt ist eine Anwendung des Satzes von Euklid, bei der zum [[Primorial]] <math>p\#</math> (Produkt aller Primzahlen von 2 bis <math>p</math>) eine 1 addiert wird:
Auch bekannt ist eine Anwendung des Satzes von [[Euklid]], bei der zum [[Primorial]] <math>p\#</math> (Produkt aller Primzahlen von 2 bis <math>p</math>) eine 1 addiert wird:


:<math>p\# + 1 = 2 \cdot 3 \cdot 5 \dotsm p + 1</math>
: <math>p\# + 1 = 2 \cdot 3 \cdot 5 \dotsm p + 1</math>


<math>p\# + 1</math> ist prim für <math>p = 2, 3, 5, 7, 11, 31, 379, 1019, 1021, \dotsc</math> ({{OEIS|A005234}}) Es ist unbekannt ob es unendlich viele Primzahlen gibt, die so erzeugt werden.
<math>p\# + 1</math> ist prim für <math>p = 2, 3, 5, 7, 11, 31, 379, 1019, 1021, \dotsc</math> ({{OEIS|A005234}}) Es ist unbekannt, ob es unendlich viele Primzahlen gibt, die so erzeugt werden.


=== Weitere Formeln ===
=== Weitere Formeln ===


* <math>n! - 1 </math> ist prim für <math>n = 3, 4, 6, 7, 12, 14, 30, 32, 33, 38, 94, 166, \dotsc</math> ({{OEIS|A002982}})
* <math>n! - 1</math> ist prim für <math>n = 3, 4, 6, 7, 12, 14, 30, 32, 33, 38, 94, 166, \dotsc</math> ({{OEIS|A002982}})
* <math>n! + 1</math> ist prim für <math>n = 1, 2, 3, 11, 27, 37, 41, 73, 77, 116, 154, \dotsc</math> ({{OEIS|A002981}})
* <math>n! + 1</math> ist prim für <math>n = 1, 2, 3, 11, 27, 37, 41, 73, 77, 116, 154, \dotsc</math> ({{OEIS|A002981}})
* Primzahlen der Form <math>\operatorname{kgV}(1,\dotsc,n)+1</math> sind: <math>2, 3, 7, 13, 61, 421, 2521, 232792561, \dotsc</math> ({{OEIS|A049536}})
* Primzahlen der Form <math>\operatorname{kgV}(1,\dotsc,n)+1</math> sind: <math>2, 3, 7, 13, 61, 421, 2521, 232792561, \dotsc</math> ({{OEIS|A049536}})

Nach dem [[Dirichletscher Primzahlsatz|Dirichletschen Primzahlsatz]] enthält eine arithmetische Folge <math>a \cdot m + b</math> (wobei <math>a</math>, <math>b</math> [[Teilerfremdheit|teilerfremd]] sind und <math>m</math> die natürlichen Zahlen durchläuft) unendlich viele Primzahlen (aber auch zusammengesetzte Zahlen). Allerdings gibt es nach [[Ben Green]] und [[Terence Tao]] für jedes <math>k</math> arithmetische Folgen (festgelegt durch <math>a, b</math>), die Primzahlen für <math>k</math> aufeinanderfolgende Werte liefern.<ref>{{MathWorld|Green-TaoTheorem|Green-Tao Theorem}}</ref> Zum Beispiel liefert:

: <math>43142746595714191+5283234035979900 \cdot k</math>

Primzahlen für <math>k=0, \dotsc, 25</math>. Die Methode entspricht dem Fall linearer Polynome.


== Trivialer Generator ==
== Trivialer Generator ==
Zeile 33: Zeile 39:
# für <math>n \geq 2</math> ist <math>f(n+1)</math> die auf <math>f(n)</math> folgende Primzahl, wobei einfach alle Zahlen ab <math>f(n)+2</math> aufsteigend darauf [[Probedivision|getestet]] werden, ob sie eine Primzahl sind.
# für <math>n \geq 2</math> ist <math>f(n+1)</math> die auf <math>f(n)</math> folgende Primzahl, wobei einfach alle Zahlen ab <math>f(n)+2</math> aufsteigend darauf [[Probedivision|getestet]] werden, ob sie eine Primzahl sind.


Dieses Verfahren ist aber recht ineffektiv, da nacheinander alle ungeraden natürlichen Zahlen getestet werden müssen. Als Alternative bietet es sich an, mittels einer Siebmethode, z.&nbsp;B. [[Sieb des Eratosthenes]] oder [[Sieb von Atkin]], eine genügend lange Liste von Primzahlen zu erstellen und diese dann bis zur gewünschten Primzahl zu durchlaufen.
Dieses Verfahren ist aber recht ineffektiv, da nacheinander alle ungeraden natürlichen Zahlen getestet werden müssen. Als Alternative bietet es sich an, mittels einer [[Sieb (Zahlentheorie)|Siebmethode]], z.&nbsp;B. [[Sieb des Eratosthenes]] oder [[Sieb von Atkin]], eine genügend lange Liste von Primzahlen zu erstellen und diese dann bis zur gewünschten Primzahl zu durchlaufen. Dabei bestimmt man manchmal zunächst primzahlähnliche Mengen ([[Fastprimzahl]]en).


==Satz von Wilson==
== Satz von Wilson ==
Eine nicht sehr praktikable Formel für alle Primzahlen beruht auf dem [[Satz von Wilson]]. Die Formel lautet unter Verwendung der [[Abrundungsfunktion und Aufrundungsfunktion|Abrundungsfunktion]]:


Eine nicht sehr praktikable Formel für alle Primzahlen beruht auf dem [[Satz von Wilson]]. Die Formel lautet unter Verwendung der [[Abrundungsfunktion]]:
:<math>f(n) = \left\lfloor \frac{n! \bmod (n+1)}{n} \right\rfloor (n-1) + 2</math>, für natürliche Zahlen <math>n</math>.
Nach dem Satz von Wilson ist <math>n+1</math> prim genau dann falls <math>n! \bmod (n+1) = n</math>. Daraus folgt dass die Formel nur Primzahlen liefert und jede Primzahl außer 2 genau einmal. Denn ist <math>n+1</math> prim, so ist <math> \left\lfloor \frac{n! \bmod (n+1)}{n} \right\rfloor =1</math> und <math> f(n)=n+1</math>. Ist <math>n+1</math> nicht prim, so ist <math> \left\lfloor \frac{n! \bmod (n+1)}{n} \right\rfloor =0</math> und <math> f(n)=2</math>
==Diophantische Mengen für Primzahlen==
Nach den Arbeiten zum [[Diophantische Gleichung#Hilberts zehntes Problem|Hilberts zehntem Problem]] gibt es ein System von endlich vielen diophantischen Gleichungen (Polynomen über den ganzen Zahlen), die als Lösung alle Primzahlen und nur diese haben. Nach [[Juri Wladimirowitsch Matijassewitsch]] sollte es solch ein System mit neun oder weniger Variablen geben. James P. Jones und Kollegen gaben 1976 ein System von 14 Polynomen in 26 Variablen an.<ref>James P. Jones, Daihachiro Sato, Hideo Wada, Douglas Wiens, Diophantine representation of the set of prime numbers, American Mathematical Monthly, Band 83, 1976, S. 449–464</ref> Explizit besteht das System aus den Gleichungen:


: <math>\alpha_0= wz + h + j - q = 0</math>
: <math>f(n) = \left\lfloor \frac{n! \bmod (n+1)}{n} \right\rfloor (n-1) + 2</math> für natürliche Zahlen <math>n</math>


Nach dem Satz von Wilson ist <math>n+1</math> prim genau dann, wenn <math>n! \bmod (n+1) = n</math>. Daraus folgt, dass die Formel nur Primzahlen liefert und jede Primzahl außer 2 genau einmal. Denn ist <math>n+1</math> prim, so ist <math>\left\lfloor \frac{n! \bmod (n+1)}{n} \right\rfloor =1</math> und <math>f(n)=n+1</math>. Ist <math>n+1</math> nicht prim, so ist <math>\left\lfloor \frac{n! \bmod (n+1)}{n} \right\rfloor =0</math> und <math> f(n)=2</math>.
: <math>\alpha_1 = (gk + 2g + k + 1)(h + j) + h - z = 0</math>


== Diophantische Mengen für Primzahlen ==
: <math>\alpha_2= 16(k + 1)^3(k + 2)(n + 1)^2 + 1 - f^2 = 0</math>


Nach den Arbeiten zu [[Diophantische Gleichung#Hilberts zehntes Problem|Hilberts zehntem Problem]] gibt es ein System von endlich vielen diophantischen Gleichungen (Polynomen über den ganzen Zahlen), die als Lösung alle Primzahlen und nur diese haben. Nach [[Juri Wladimirowitsch Matijassewitsch]] sollte es so ein System mit neun oder weniger Variablen geben. James P.&nbsp;Jones und Kollegen gaben 1976 ein System von 14 Polynomen in 26 Variablen an.<ref>James P. Jones, Daihachiro Sato, Hideo Wada, Douglas Wiens: ''Diophantine representation of the set of prime numbers.'' American Mathematical Monthly, Band 83, 1976, S.&nbsp;449–464.</ref> Explizit besteht das System aus den Gleichungen:
: <math>\alpha_3= 2n + p + q + z - e = 0</math>


: <math>\alpha_4= e^3(e + 2)(a + 1)^2 + 1 - o^2 = 0</math>
: <math>\alpha_0 = wz + h + j - q = 0</math>


: <math>\alpha_5=(a^2 - 1)y^2 + 1 - x^2 = 0</math>
: <math>\alpha_1 = (gk + 2g + k + 1)(h + j) + h - z = 0</math>


: <math>\alpha_6= 16r^2y^4(a^2 - 1) + 1 - u^2 = 0</math>
: <math>\alpha_2 = 16(k + 1)^3(k + 2)(n + 1)^2 + 1 - f^2 = 0</math>


: <math>\alpha_7= n + \ell + v - y = 0</math>
: <math>\alpha_3 = 2n + p + q + z - e = 0</math>


: <math>\alpha_8= (a^2 - 1)\ell^2 + 1 - m^2 = 0</math>
: <math>\alpha_4 = e^3(e + 2)(a + 1)^2 + 1 - o^2 = 0</math>


: <math>\alpha_9= ai + k + 1 - \ell - i = 0</math>
: <math>\alpha_5 = (a^2 - 1)y^2 + 1 - x^2 = 0</math>


: <math>\alpha_{10}= ((a + u^2(u^2 - a))^2 - 1)(n + 4dy)^2 + 1 - (x + cu)^2 = 0</math>
: <math>\alpha_6 = 16r^2y^4(a^2 - 1) + 1 - u^2 = 0</math>


: <math>\alpha_{11}= p + \ell(a - n - 1) + b(2an + 2a - n^2 - 2n - 2) - m= 0 </math>
: <math>\alpha_7 = n + \ell + v - y = 0</math>


: <math>\alpha_{12}= q + y(a - p - 1) + s(2ap + 2a - p^2 - 2p - 2) - x = 0</math>
: <math>\alpha_8 = (a^2 - 1)\ell^2 + 1 - m^2 = 0</math>


:<math>\alpha_{13}= z + p\ell(a - p) + t(2ap - p^2 - 1) - pm = 0</math>
: <math>\alpha_9 = ai + k + 1 - \ell - i = 0</math>


: <math>\alpha_{10} = ((a + u^2(u^2 - a))^2 - 1)(n + 4dy)^2 + 1 - (x + cu)^2 = 0</math>
mit den Variablen <math> a, \cdots, z</math>. Dann und nur dann, wenn eine Lösung in natürlichen Zahlen existiert ist die Variable <math> k+2</math> eine Primzahl.

: <math>\alpha_{11} = p + \ell(a - n - 1) + b(2an + 2a - n^2 - 2n - 2) - m= 0 </math>

: <math>\alpha_{12} = q + y(a - p - 1) + s(2ap + 2a - p^2 - 2p - 2) - x = 0</math>

: <math>\alpha_{13} = z + p\ell(a - p) + t(2ap - p^2 - 1) - pm = 0</math>

mit den Variablen <math>a, \dotsc, z</math>. Dann und nur dann, wenn eine Lösung in natürlichen Zahlen existiert, ist die Variable <math>k+2</math> eine Primzahl.


Das lässt sich auch in eine Ungleichung zusammenfassen:
Das lässt sich auch in eine Ungleichung zusammenfassen:


:<math> (k+2)(1-\alpha_0^2-\alpha_1^2-\cdots-\alpha_{13}^2) > 0 </math>
: <math>(k+2)(1-\alpha_0^2-\alpha_1^2-\cdots-\alpha_{13}^2) > 0</math>


Wenn man für die einzelnen Variablen natürliche Zahlen einsetzt sind <math> k+2</math> genau dann Primzahlen wenn die Ungleichung erfüllt ist.
Wenn man für die einzelnen Variablen natürliche Zahlen einsetzt, ist <math>k+2</math> genau dann eine Primzahl, wenn die Ungleichung erfüllt ist.


Es gibt auch ein die Primzahlen (und nur diese) erzeugendes System von n diophantischen Gleichungen mit nur zehn Variablen, allerdings mit sehr hohem Grad (in der Größenordnung <math>10^{45}</math>). Nach Thoralf Skolem kann man auch immer ein solches System mit nur Polynomen höchstens vierten Grades finden, allerdings ist in diesem Fall die Zahl der Variablen sehr hoch (mindestens 58 so weit bekannt).<ref>James P. Jones, Universal diophantine equation, Journal of Symbolic Logic, Band 47, 1982, S. 549–571</ref>
Es gibt auch ein die Primzahlen (und nur diese) erzeugendes System von <math>n</math> diophantischen Gleichungen mit nur zehn Variablen, allerdings mit sehr hohem Grad (in der Größenordnung <math>10^{45}</math>). Nach Thoralf Skolem kann man auch immer ein solches System mit nur Polynomen höchstens vierten Grades finden, allerdings ist in diesem Fall die Zahl der Variablen sehr hoch (mindestens 58, soweit bekannt).<ref>James P. Jones: ''Universal diophantine equation.'' Journal of Symbolic Logic, Band 47, 1982, S.&nbsp;549–571.</ref> Die Methoden sind bisher von keinem praktischen Nutzen.


==Formel von Mills==
== Formel von Mills ==
W. H. Mills zeigte 1947,<ref>Mills, A prime-representing function, Bulletin of the AMS, Band 53, 1947, S. 604</ref> dass es eine reelle Zahl <math>A</math> gibt,


W. H. Mills zeigte 1947,<ref>Mills: ''A prime-representing function.'' Bulletin of the AMS, Band 53, 1947, S.&nbsp;604.</ref> dass es eine reelle Zahl <math>A</math> gibt, sodass
so dass


:<math>\left \lfloor d_n \right \rfloor = \left \lfloor A^{3^{n}} \right \rfloor</math>
: <math>\left \lfloor d_n \right \rfloor = \left \lfloor A^{3^{n}} \right \rfloor</math>


für alle natürlichen Zahlen <math> n</math> prim ist. Man kann unter Annahme der Riemannschen Vermutung zeigen, dass das kleinste solche <math> A</math> (die sogenannte Mill'sche Konstante) einen Wert von etwa <math>1.3063778838630806904686144926...</math> hat<ref> [https://oeis.org/A051021 OEIS, A 051021] </ref> Die mit der Formel erzeugten Primzahlen heissen Mills-Primzahlen: <math>\left \lfloor d_1 \right \rfloor = 2</math>, <math>\left \lfloor d_2 \right \rfloor = 11</math>, <math>\left \lfloor d_3 \right \rfloor = 1361</math> Da über <math>A</math> aber wenig bekannt ist (noch nicht einmal ob die Konstante rational oder irrational ist), hat die Formel wenig praktischen Wert.
für alle natürlichen Zahlen <math>n</math> prim ist. Man kann unter Annahme der [[Riemannsche Vermutung|Riemannschen Vermutung]] zeigen, dass das kleinste solche <math>A</math> (die sogenannte [[Mills’ Konstante|Mill’sche Konstante]]) einen Wert von etwa <math>1{,}3063778838630806904686144926 \dots</math> hat.<ref>{{OEIS|A051021}}.</ref> Die mit der Formel erzeugten Primzahlen heißen Mills-Primzahlen: <math>\left \lfloor d_1 \right \rfloor = 2</math>, <math>\left \lfloor d_2 \right \rfloor = 11</math>, <math>\left \lfloor d_3 \right \rfloor = 1361.</math> Da über <math>A</math> wenig bekannt ist (noch nicht einmal, ob die Konstante rational oder irrational ist), hat die Formel aber keinen praktischen Wert.


==Formel von Wright==
== Formel von Wright ==

Eine ähnliche Formel wie die von Mills fand [[E. M. Wright]].<ref>E. M. Wright, A prime-representing function, American Mathematical Monthly, Band 58, 1951, S. 616-618</ref> Wright zeigte dass es eine reelle Zahl <math>\alpha</math> gibt so dass
Eine ähnliche Formel wie die von Mills fand [[E. M. Wright]].<ref>E. M. Wright: ''A prime-representing function.'' American Mathematical Monthly, Band 58, 1951, S.&nbsp;616–618.</ref> Wright zeigte, dass es eine reelle Zahl <math>\alpha</math> gibt, sodass

: <math>\left \lfloor g_n \right \rfloor = \left \lfloor 2^{\dots^{2^{2^\alpha}}} \right \rfloor</math>


:<math>\left \lfloor g_n \right \rfloor = \left \lfloor 2^{\dots^{2^{2^\alpha}}} \right \rfloor </math>
prim ist für alle <math>n \ge 1</math>.
prim ist für alle <math>n \ge 1</math>.


Dabei ist <math>g_n</math> rekursiv definiert:
Dabei ist <math>g_n</math> rekursiv definiert:
:<math>g_0 = \alpha</math>
:<math>g_{n+1} = 2^{g_n}</math>, für <math>n \ge 0</math>,


: <math>g_0 = \alpha</math>
Wright gab auch die ersten Dezimalstellen von <math>\alpha</math> als <math>\alpha = 1.9287800</math>. Das ergibt die Primzahlen <math>\left \lfloor g_1 \right \rfloor = \left \lfloor 2^{\alpha} \right \rfloor = 3 </math>, <math>\left \lfloor g_2 \right \rfloor = 13 </math>, und <math>\left \lfloor g_3 \right \rfloor = 16381 </math>. Dagegen ist mit diesem Wert von <math>\alpha</math> <math>\left \lfloor g_4 \right \rfloor</math> gerade und man braucht für die folgenden Primzahlen mehr Dezimalstellen. Da die Formel auf der Kenntnis von <math>\alpha</math> beruht ist sie praktisch ebenso nutzlos wie die von Mills.
: <math>g_{n+1} = 2^{g_n}</math> für <math>n \ge 0</math>

Wright gab mit <math>\alpha = 1{,}9287800 \dots</math> auch die ersten Dezimalstellen von <math>\alpha</math> an. Das ergibt die Primzahlen <math>\left \lfloor g_1 \right \rfloor = \left \lfloor 2^{\alpha} \right \rfloor = 3</math>, <math>\left \lfloor g_2 \right \rfloor = 13</math> und <math>\left \lfloor g_3 \right \rfloor = 16381</math>.
Es zeigt sich, dass mit einem Wert von <math>\alpha \approx 1{,}9287800</math>
:<math>\left \lfloor g_4 \right \rfloor = \left \lfloor 2^{2^{2^{2^{\alpha}}}}\right \rfloor = 19139664204631104...822015417386540 </math>

(die Punkte bedeuten 4900 nicht dargestellte Dezimalstellen) eine Zahl mit 4932 Dezimalstellen ist, die aber ''gerade'' (das heißt, keine Primzahl) ist, das heißt, dieser Wert von <math>\alpha</math> muss leicht korrigiert werden.<ref>Robert Baillie: Wright's Fourth Prime [https://arxiv.org/pdf/1705.09741.pdf]</ref>
Für die folgenden Primzahlen braucht man noch weit mehr Dezimalstellen.

Da die Formel auf der Kenntnis von <math>\alpha</math> beruht, ist sie praktisch ebenso nutzlos wie die von Mills.

== Conways Primzahlgenerator ==

Für die primzahlerzeugende ''Maschine'' (PRIMEGAME) von [[John Horton Conway]]<ref>[[Richard K. Guy]]: ''Conway's Prime Producing Machine.'' Mathematics Magazine, Band 56, 1983, S.&nbsp;26–33.</ref> siehe [[FRACTRAN]]. Die Methode ist allerdings ebenfalls nicht praktikabel zur Generierung von Primzahllisten.

== Primzahlgenerator für endliche Primzahlmengen ==

[[Ross Honsberger]]<ref>Honsberger: ''More Mathematical Morsels.'' Mathematical Association of America 1991, S.&nbsp;108 (Morsel 20).</ref> gibt einen einfachen Beweis für folgenden Satz:

Man teile die ersten <math>n</math> Primzahlen beliebig auf zwei [[disjunkt]]e Mengen <math>A, B</math> auf, sodass <math>A \cup B = \{2, \dotsc, p_n \}</math>. Sei <math>a</math> das Produkt der Elemente von <math>A</math> und <math>b</math> das der Elemente von <math>B</math>. <math>A</math> darf auch [[Leere Menge|leer]] sein, dann ist <math>a = 1</math> ([[leeres Produkt]]). Falls nun <math>a+b < p_{n+1}^2</math>, dann ist <math>a+b</math> eine Primzahl, und <math>|a-b|</math> ist prim, wenn <math>1 < |a-b| < p_{n+1}^2</math>.

Beispiel: <math>p_n=5</math> (betrachtet werden dann nur Zahlen kleiner als <math>p_{n+1}^2=7^2=49</math>):
: <math>2 \cdot 3 + 5 = 11, \quad 2 \cdot 3 - 5 = 1</math>
: <math>2 \cdot 5 + 3 = 13, \quad 2 \cdot 5 - 3 = 7</math>
: <math>3 \cdot 5 + 2 = 17, \quad 3 \cdot 5 - 2 = 13</math>
: <math>2 \cdot 3 \cdot 5 + 1 = 31, \quad 2 \cdot 3 \cdot 5 - 1 = 29</math>

Zweites Beispiel: <math>p_n=11</math> (betrachtet werden dann nur Zahlen kleiner als <math>p_{n+1}^2=13^2=169</math>):
: <math>2 \cdot 11 + 3 \cdot 5 \cdot 7 = 127</math>
: <math>3 \cdot 5 \cdot 11 - 2 \cdot 7 = 151</math>
Jedoch sind
: <math>3 \cdot 5 + 2 \cdot 7 \cdot 11 = 169,</math>
: <math>2 \cdot 3 \cdot 5 \cdot 11 - 7 = 323</math>
''nicht'' kleiner als 169 und daher nicht prim.


== Weblinks ==
== Weblinks ==


* [http://mathworld.wolfram.com/PrimeFormulas.html Prime Formulas, Mathworld]
* {{MathWorld|PrimeFormulas|Prime Formulas}}
==Einzelnachweise==
<references />


== Einzelnachweise ==
{{Navigationsleiste Primzahlklassen}}
<references />


[[Kategorie:Primzahl]]
[[Kategorie:Primzahl]]
[[Kategorie:Zahlentheoretischer Algorithmus]]
[[Kategorie:Zahlentheoretischer Algorithmus]]
[[Kategorie:Zahlentheorie]]
[[Kategorie:Ungelöstes Problem der Informatik]]
[[Kategorie:Ungelöstes Problem der Informatik]]

Aktuelle Version vom 17. September 2024, 01:14 Uhr

Als Primzahlgenerator bezeichnet man in der Informatik einen Algorithmus , so dass für natürliche Zahlen der Wert die -te Primzahl ist. In der Mathematik und speziell der Zahlentheorie entspricht das Formeln, die besonders viele Primzahlen liefern (Formeln für Primzahlen). Bisher wurde noch kein effizienter Primzahlgenerator gefunden, insbesondere existiert keine praktikable geschlossene Formel zur Generierung von Primzahlen.

Es gibt allerdings Formeln, bei denen eine gewisse Wahrscheinlichkeit besteht, dass eine erzeugte Zahl eine Primzahl ist, so dass die erzeugten Zahlen noch darauf getestet werden müssen, ob sie prim sind. Im Artikel werden auch andere Formeln behandelt, die nicht praxistauglich sind, die aber in der mathematischen Literatur bezüglich der Frage diskutiert wurden, ob sie viele Primzahlen liefern.

Einer der ältesten Algorithmen zur Bestimmung von Primzahlen ist das Sieb des Eratosthenes, bei dem nacheinander aus einer Liste der natürlichen Zahlen diejenigen Zahlen gestrichen werden, die Vielfache der jeweils kleinsten noch nicht gestrichenen Zahl sind. Dadurch bleiben die Primzahlen innerhalb der Ausgangsliste übrig.

Schon Euler gab die Formeln und an, die für bzw. Primzahlen liefern. Auch für größere Werte von liefern die beiden Formeln viele Primzahlen, weil das Ergebnis nie durch Primzahlen bzw. ganzzahlig teilbar ist. Allgemein gibt es viele solche Formeln , wodurch sich die auffällige Ulam-Spirale erklärt. Es gibt aber nach Adrien-Marie Legendre kein Polynom, das für alle Werte der Variablen in den natürlichen Zahlen Primzahlen ergibt (auch nicht fast alle Primzahlen). Die Frage, welche ganzzahligen Polynome unendlich viele Primzahlen erzeugen, ist Gegenstand der Bunjakowski-Vermutung.

Die beliebteste ist die der Mersenne-Zahl , bei der eine Primzahl ist. Durch die besonderen Eigenschaften der Teiler von Mersenne-Zahlen eignen sie sich für die Suche nach möglichst großen Primzahlen.

Fermat vermutete, dass alle Zahlen der Form prim sind; man nennt sie Fermat-Zahlen. Tatsächlich ist aber für keine derartige Primzahl bekannt.

Auch bekannt ist eine Anwendung des Satzes von Euklid, bei der zum Primorial (Produkt aller Primzahlen von 2 bis ) eine 1 addiert wird:

ist prim für (Folge A005234 in OEIS) Es ist unbekannt, ob es unendlich viele Primzahlen gibt, die so erzeugt werden.

Weitere Formeln

[Bearbeiten | Quelltext bearbeiten]
  • ist prim für (Folge A002982 in OEIS)
  • ist prim für (Folge A002981 in OEIS)
  • Primzahlen der Form sind: (Folge A049536 in OEIS)

Nach dem Dirichletschen Primzahlsatz enthält eine arithmetische Folge (wobei , teilerfremd sind und die natürlichen Zahlen durchläuft) unendlich viele Primzahlen (aber auch zusammengesetzte Zahlen). Allerdings gibt es nach Ben Green und Terence Tao für jedes arithmetische Folgen (festgelegt durch ), die Primzahlen für aufeinanderfolgende Werte liefern.[1] Zum Beispiel liefert:

Primzahlen für . Die Methode entspricht dem Fall linearer Polynome.

Trivialer Generator

[Bearbeiten | Quelltext bearbeiten]

Ein trivialer Primzahlgenerator kann folgendermaßen induktiv definiert werden:

  1. für ist die auf folgende Primzahl, wobei einfach alle Zahlen ab aufsteigend darauf getestet werden, ob sie eine Primzahl sind.

Dieses Verfahren ist aber recht ineffektiv, da nacheinander alle ungeraden natürlichen Zahlen getestet werden müssen. Als Alternative bietet es sich an, mittels einer Siebmethode, z. B. Sieb des Eratosthenes oder Sieb von Atkin, eine genügend lange Liste von Primzahlen zu erstellen und diese dann bis zur gewünschten Primzahl zu durchlaufen. Dabei bestimmt man manchmal zunächst primzahlähnliche Mengen (Fastprimzahlen).

Satz von Wilson

[Bearbeiten | Quelltext bearbeiten]

Eine nicht sehr praktikable Formel für alle Primzahlen beruht auf dem Satz von Wilson. Die Formel lautet unter Verwendung der Abrundungsfunktion:

für natürliche Zahlen

Nach dem Satz von Wilson ist prim genau dann, wenn . Daraus folgt, dass die Formel nur Primzahlen liefert und jede Primzahl außer 2 genau einmal. Denn ist prim, so ist und . Ist nicht prim, so ist und .

Diophantische Mengen für Primzahlen

[Bearbeiten | Quelltext bearbeiten]

Nach den Arbeiten zu Hilberts zehntem Problem gibt es ein System von endlich vielen diophantischen Gleichungen (Polynomen über den ganzen Zahlen), die als Lösung alle Primzahlen und nur diese haben. Nach Juri Wladimirowitsch Matijassewitsch sollte es so ein System mit neun oder weniger Variablen geben. James P. Jones und Kollegen gaben 1976 ein System von 14 Polynomen in 26 Variablen an.[2] Explizit besteht das System aus den Gleichungen:

mit den Variablen . Dann und nur dann, wenn eine Lösung in natürlichen Zahlen existiert, ist die Variable eine Primzahl.

Das lässt sich auch in eine Ungleichung zusammenfassen:

Wenn man für die einzelnen Variablen natürliche Zahlen einsetzt, ist genau dann eine Primzahl, wenn die Ungleichung erfüllt ist.

Es gibt auch ein die Primzahlen (und nur diese) erzeugendes System von diophantischen Gleichungen mit nur zehn Variablen, allerdings mit sehr hohem Grad (in der Größenordnung ). Nach Thoralf Skolem kann man auch immer ein solches System mit nur Polynomen höchstens vierten Grades finden, allerdings ist in diesem Fall die Zahl der Variablen sehr hoch (mindestens 58, soweit bekannt).[3] Die Methoden sind bisher von keinem praktischen Nutzen.

Formel von Mills

[Bearbeiten | Quelltext bearbeiten]

W. H. Mills zeigte 1947,[4] dass es eine reelle Zahl gibt, sodass

für alle natürlichen Zahlen prim ist. Man kann unter Annahme der Riemannschen Vermutung zeigen, dass das kleinste solche (die sogenannte Mill’sche Konstante) einen Wert von etwa hat.[5] Die mit der Formel erzeugten Primzahlen heißen Mills-Primzahlen: , , Da über wenig bekannt ist (noch nicht einmal, ob die Konstante rational oder irrational ist), hat die Formel aber keinen praktischen Wert.

Formel von Wright

[Bearbeiten | Quelltext bearbeiten]

Eine ähnliche Formel wie die von Mills fand E. M. Wright.[6] Wright zeigte, dass es eine reelle Zahl gibt, sodass

prim ist für alle .

Dabei ist rekursiv definiert:

für

Wright gab mit auch die ersten Dezimalstellen von an. Das ergibt die Primzahlen , und . Es zeigt sich, dass mit einem Wert von

(die Punkte bedeuten 4900 nicht dargestellte Dezimalstellen) eine Zahl mit 4932 Dezimalstellen ist, die aber gerade (das heißt, keine Primzahl) ist, das heißt, dieser Wert von muss leicht korrigiert werden.[7] Für die folgenden Primzahlen braucht man noch weit mehr Dezimalstellen.

Da die Formel auf der Kenntnis von beruht, ist sie praktisch ebenso nutzlos wie die von Mills.

Conways Primzahlgenerator

[Bearbeiten | Quelltext bearbeiten]

Für die primzahlerzeugende Maschine (PRIMEGAME) von John Horton Conway[8] siehe FRACTRAN. Die Methode ist allerdings ebenfalls nicht praktikabel zur Generierung von Primzahllisten.

Primzahlgenerator für endliche Primzahlmengen

[Bearbeiten | Quelltext bearbeiten]

Ross Honsberger[9] gibt einen einfachen Beweis für folgenden Satz:

Man teile die ersten Primzahlen beliebig auf zwei disjunkte Mengen auf, sodass . Sei das Produkt der Elemente von und das der Elemente von . darf auch leer sein, dann ist (leeres Produkt). Falls nun , dann ist eine Primzahl, und ist prim, wenn .

Beispiel: (betrachtet werden dann nur Zahlen kleiner als ):

Zweites Beispiel: (betrachtet werden dann nur Zahlen kleiner als ):

Jedoch sind

nicht kleiner als 169 und daher nicht prim.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Eric W. Weisstein: Green-Tao Theorem. In: MathWorld (englisch).
  2. James P. Jones, Daihachiro Sato, Hideo Wada, Douglas Wiens: Diophantine representation of the set of prime numbers. American Mathematical Monthly, Band 83, 1976, S. 449–464.
  3. James P. Jones: Universal diophantine equation. Journal of Symbolic Logic, Band 47, 1982, S. 549–571.
  4. Mills: A prime-representing function. Bulletin of the AMS, Band 53, 1947, S. 604.
  5. Folge A051021 in OEIS.
  6. E. M. Wright: A prime-representing function. American Mathematical Monthly, Band 58, 1951, S. 616–618.
  7. Robert Baillie: Wright's Fourth Prime [1]
  8. Richard K. Guy: Conway's Prime Producing Machine. Mathematics Magazine, Band 56, 1983, S. 26–33.
  9. Honsberger: More Mathematical Morsels. Mathematical Association of America 1991, S. 108 (Morsel 20).