Welcher ist der schnellste Algorithmus, um Primzahlen mit C++ zu finden? Ich habe das Siebverfahren verwendet, aber ich möchte immer noch, dass es schneller wird!
Dies sollte eine Antwort auf "Wie man unstrukturierten Code schreibt, ohne tatsächlich GOTO zu verwenden" sein. All diese Verwirrung nur, um eine einfache Trial-Division zu codieren! (n%2)+1+(3*n)
ist jedoch irgendwie schön. :)
0 Stimmen
Ein altes Artikel, das ich gefunden habe, aber interessant aussieht: Spaß mit Primzahlen
30 Stimmen
@Jaider dies scheitert bereits bei Zahlen so niedrig wie 7 (111). Es scheitert auch für 1001=9. Und offensichtlich scheitert es für fast alle Primzahlen im Allgemeinen (deckt nicht den Fall 2^p - 1 ab, die Mersenne-Primzahlen sind - klassisch generierte Beispiele - die immer in Form von 111...1 sein werden)
2 Stimmen
@Kasperasky - Sie haben nicht erwähnt, welches Sieb? Sie meinen wahrscheinlich das Sieb von Eranthoses!
0 Stimmen
Sieb des Eratosthenes Algorithmus
1 Stimmen
Es ist erstaunlich zu sehen, wie viele Antworten es gibt, wenn die Frage absolut unmöglich zu beantworten ist, ohne den Zahlenbereich zu kennen, der abgedeckt werden soll. Wenn Sie alle Primzahlen möchten, ist kein schneller Algorithmus erforderlich.
0 Stimmen
@YvesDaoust ... und mit der besten Antwort, die eindeutig falsch ist, und der zweitbesten Antwort, die keine Antwort ist (im Grunde genommen sagt sie: "Jemand anderes hat es bereits gemacht, nutze ihre Ergebnisse").
1 Stimmen
@WillNess: Würde
int p[]= {2, 3};
als "schnellster Algorithmus zum Auffinden von Primzahlen" gelten?0 Stimmen
@YvesDaoust "...unter 4", vielleicht (mit der fest codierten 4). Andernfalls muss der benötigte Bereich angegeben werden (auch wenn es [0,+inf) ist).
1 Stimmen
@WillNess: Ich frage mich, ob eine einzige Primzahl ausreichen würde, um "numberS" zu befriedigen.
0 Stimmen
@YvesDaoust auch keine Zahlen können die Antwort sein, zum Beispiel für Primzahlen über 5 unter 7.