Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich mithilfe einer Schleife und einer benutzerdefinierten Formel effizient Primzahlen finden?

Wie kann ich mithilfe einer Schleife und einer benutzerdefinierten Formel effizient Primzahlen finden?

DDD
Freigeben: 2024-10-30 09:13:27
Original
875 Leute haben es durchsucht

How can I efficiently find prime numbers using a loop and a custom formula?

Integration der Primzahlformel in eine Schleife

Beim Bestreben, Primzahlen mithilfe von Schleifen effizient zu finden, kann es vorkommen, dass Sie auf Situationen stoßen, in denen Ihre bestehenden Ansatz greift zu kurz. Lassen Sie uns einen bestimmten Anwendungsfall untersuchen und mithilfe einer benutzerdefinierten Formel eine aktualisierte Lösung bereitstellen.

Ursprünglicher Versuch und seine Mängel

Mit dem Code, den Sie ursprünglich geteilt haben, wurde versucht, Primzahlen zu identifizieren ein schleifenbasierter Ansatz. Es gab jedoch Einschränkungen bei der korrekten Identifizierung von Primzahlen, insbesondere aufgrund der Methode zur Division von Zahlen.

Eine optimierte Formel und Implementierung

Um dieses Problem zu beheben, sollten Sie die Implementierung in Betracht ziehen isPrime()-Funktion, die in der bereitgestellten Antwort erwähnt wird:

<code class="php">function isPrime($num) {
    //1 is not prime. See: http://en.wikipedia.org/wiki/Prime_number#Primality_of_one
    if($num == 1)
        return false;

    //2 is prime (the only even number that is prime)
    if($num == 2)
        return true;

    /**
     * if the number is divisible by two, then it's not prime and it's no longer
     * needed to check other even numbers
     */
    if($num % 2 == 0) {
        return false;
    }

    /**
     * Checks the odd numbers. If any of them is a factor, then it returns false.
     * The sqrt can be an aproximation, hence just for the sake of
     * security, one rounds it to the next highest integer value.
     */
    $ceil = ceil(sqrt($num));
    for($i = 3; $i <= $ceil; $i = $i + 2) {
        if($num % $i == 0)
            return false;
    }

    return true;
}
Nach dem Login kopieren

Einbindung der Formel in eine Schleife

Jetzt können Sie diese Funktion innerhalb einer Schleife nutzen, um effizient zu finden Primzahlen:

<code class="php">$limit = 100; // Set a limit to the number range you want to check

for ($i = 2; $i <= $limit; $i++) {
    if (isPrime($i)) {
        echo $i . " is a prime number. <br>";
    }
}</code>
Nach dem Login kopieren

Mit diesem aktualisierten Ansatz können Sie jetzt Primzahlen bis zum angegebenen Grenzwert genau identifizieren.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe einer Schleife und einer benutzerdefinierten Formel effizient Primzahlen finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage