Primzahlen beziehen sich auf natürliche Zahlen, die nur durch 1 und sich selbst teilbar sein können. Das Finden von Primzahlen ist eines der häufigsten Probleme bei der Programmierung. In diesem Artikel wird eine klassische und effiziente Primzahl -Lösungsmethode vorgestellt - Sieb von Eratosthenes. Dieser Algorithmus findet schnell alle Primzahlen in einem bestimmten Bereich, indem sie Primzahlen und ihre Vielfachen markieren.
Die Elatoseni-Filtermethode ist ein langjähriger, einfacher und effektiver Algorithmus, und seine Kernideen umfassen:
Erstellen Sie ein Boolean -Array der Länge N+1 mit den anfänglichen Werten von True;
Ab 2 markieren Multiplikatoren jeder Primzahl als falsch;
Das Element mit dem endgültigen verbleibenden Wert von True ist eine Primzahl.
Der folgende Beispielcode zeigt, wie diese Filtermethode mit PHP implementiert wird:
function sieveOfEratosthenes($n) {
// Erstellen eine Länge von n+1 Boolean Array,Der Anfangswert ist true
$isPrime = array_fill(2, $n - 1, true);
// aus2Start,Markieren Sie Multiplikatoren jeder Primzahl als false
for ($i = 2; $i * $i <= $n; $i++) {
if ($isPrime[$i]) {
for ($j = $i * $i; $j <= $n; $j += $i) {
$isPrime[$j] = false;
}
}
}
// Sammeln Sie alle als true Anzahl von,Das heißt, Primzahlen
$primes = [];
foreach ($isPrime as $number => $is) {
if ($is) {
$primes[] = $number;
}
}
return $primes;
}
$range = 100;
$primes = sieveOfEratosthenes($range);
// Ausgabe Primzahl
foreach ($primes as $prime) {
echo $prime . " ";
}
Der Code erstellt zuerst ein booleanes Array der Größe N+1, setzt ihn zunächst auf True und markiert dann Multiples der Primzahlen eins nach dem anderen durch eine Doppelschichtschleife als falsch nacheinander. Schließlich werden alle mit True markierten Indizes gesammelt, dh die Primzahl -Set.
Führen Sie den obigen Code aus und die Ausgabe von Primzahlen mit einem Bereich von 100 ist wie folgt:
<span class="fun">2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97</span>
Es ist ersichtlich, dass diese Methode alle Primzahlen in einem bestimmten Bereich genau und effizient finden kann.
Die zeitliche Komplexität der Elatoseni -Filtermethode betrifft O (N log log N), das zum schnellen Screening von Primzahlen in einem kleinen bis mittleren Bereich geeignet ist. Im Vergleich zum gewalttätigen Urteilsvermögen werden jedes Mal, wenn das Screening erheblich verbessert wird, mehr Nicht-Prioritätszahlen ausgeschlossen.
In diesem Artikel wird die von PHP implementierte Elatoseni -Filtermethode eingeführt, bei der ein einfacher und effizienter Primzahl -Screening -Algorithmus ist. Das Beherrschen dieses Algorithmus kann dazu beitragen, Programmierungsprobleme mit Primzahlen zu lösen und die Code -Effizienz und -leistung zu verbessern.