Eine Formel, um Primzahlen in einer Schleife zu finden

8

Ich muss Primzahlen mit for-Schleife oder while-Schleife

finden

Ich habe das geschrieben, aber das ist falsch

%Vor%

Gibt es eine Möglichkeit, eine Zahl durch ein Array zu teilen, um die verbleibenden zu finden?

    
Mohammad Masoudian 26.05.2013, 20:17
quelle

18 Antworten

33

Hier ist eine kleine Funktion, die ich gefunden habe: ( Ссылка ) für mich arbeiten!

%Vor%     
Farkie 26.05.2013, 20:21
quelle
11

Sie können diese PHP-Funktion gmp_nextprime()

verwenden     
happy 26.05.2013 20:20
quelle
7

Hier ist ein One-Liner, den ich vor einiger Zeit gefunden habe, um nach Primzahlen zu suchen. Es verwendet Tally-Markierungen (unäre Mathematik), um zu bestimmen:

%Vor%

Überprüfen Sie alle Zahlen nacheinander auf Primzahlen:

%Vor%

Um nur einen Zahlenbereich für Primzahlen zu prüfen, wie im Beispiel:

%Vor%     
Jeff Clayton 15.07.2014 22:53
quelle
5

Dies ist eine grundlegende Implementierung:

%Vor%

Dies wird ausgegeben

%Vor%

Komplette Logik Schritt-für-Schritt und visuelle Analogie hier: Hier

    
ngakak 07.04.2014 16:56
quelle
3

Ohne mathematische Funktion:

%Vor%     
ghaliano 30.01.2015 21:30
quelle
2

Alles, was sqrt () ist, ist falsch oder irgendein Gleitkommawert ist Primzahl

    
Nikba 14.05.2014 14:57
quelle
1

Dies ist, glaube ich, eine recht effiziente Routine, die alle Primzahlen bis 1000 auflistet.

Es testet jede Zahl ($ x), um zu sehen, ob es irgendwelche Faktoren (außer sich selbst und 1, natürlich) hat.

Mathematisch ist es nicht notwendig, alle niedrigeren Zahlen als mögliche Faktoren zu testen, sondern nur Primzahlen bis zur Quadratwurzel von $ x. Dies wird durch das Speichern von Primzahlen ermöglicht, so wie sie in einem Array gefunden werden (was meiner Meinung nach die Strategie ist, auf die sich das OP bezieht).

Sobald der erste Primfaktor gefunden ist, wissen wir, dass $ x nicht prim ist, und daher ist kein weiterer Test dieses Wertes von $ x nötig und wir können aus der foreach-Schleife ausbrechen.

%Vor%     
WebSmithery 26.10.2013 16:25
quelle
1
%Vor%

Ссылка

    
user7232036 30.11.2016 16:41
quelle
0

Ich weiß, dass das etwas spät kommt, aber hoffe, es hilft jemandem.

%Vor%

// Beispiel    primzahl_finder (200);

    
lukkystunt 09.04.2014 13:57
quelle
0
%Vor%     
Ashish 20.07.2014 08:24
quelle
0

Sieve_of_Eratosthenes ist ein einfacher und schneller Algorithmus, um Primzahlen zu finden.

%Vor%     
mocak 25.07.2014 11:28
quelle
0

Finden Sie Primzahlen zwischen 1 und 10000 mit einem Abschluss in array_filter ():

%Vor%

Bearbeiten: 1 ist keine Primzahl

    
user3396065 02.11.2015 11:06
quelle
0

Der beste Weg, um zu überprüfen, ob eine Zahl eine Primzahl ist, ist zu sehen, ob sie durch irgendeine Primzahl davor teilbar ist. Pi (x) ist diejenige, die ich überall sehe ... Sie können ein bisschen mehr Informationen über Prime Counting auf wikipedia .

Der effizienteste Weg, den ich mir im Moment vorstellen kann, ist folgender:

%Vor%

Was nicht wirklich effizient ist, na ja, nicht, wenn es darum geht, die Liste der Primzahlen zu erstellen ... Ich habe an einem besseren Weg gearbeitet, die Liste zu erstellen. hier , obwohl es genauso einfach und viel effizienter wäre, eine Liste online zu finden und diese zu verwenden.

Die Verwendung der oben genannten wäre in etwa wie folgt:

%Vor%     
Alexander Holman 12.10.2016 14:43
quelle
0

Ich weiß das zu spät, aber ich fand, dass diese Lösung viel besser und einfacher ist

%Vor%     
Nikolay Latkin 17.10.2016 21:03
quelle
0

Ich weiß, dass es ein bisschen spät wird, aber hier ist ein einfaches Programm, um Ihnen zu helfen, genau das zu tun, wonach Sie fragen ...

%Vor%     
Chigozie Orunta 28.07.2017 12:02
quelle
0
%Vor%     
Ajaz Alam 11.08.2017 12:47
quelle
0

Enforced Version von @Farkie Antwort speziell für die Überprüfung der Primzahlen in Schleifen.

%Vor%

Benchmark mit phpfiddle.org. V1 - Farkie Antwort, V2 - verbesserte Version

%Vor%
  

HINWEIS! isPrime_v2 function ist NUR im Falle eines Schleifens von 3 anwendbar. Andernfalls wird das gespeicherte $ wonedPrimes-Array nicht ausreichend gespeichert.

    
iXCray 11.08.2017 22:39
quelle
0

Hier ist ein weiterer sehr einfacher, aber ruhiger effektiver Ansatz:

%Vor%     
Rmy5 14.09.2017 21:08
quelle

Tags und Links