Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah saya boleh mencari nombor perdana dengan cekap menggunakan gelung dan formula tersuai?

Bagaimanakah saya boleh mencari nombor perdana dengan cekap menggunakan gelung dan formula tersuai?

DDD
Lepaskan: 2024-10-30 09:13:27
asal
880 orang telah melayarinya

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

Menggabungkan Formula Nombor Perdana ke dalam Gelung

Dalam usaha mencari nombor perdana dengan cekap menggunakan gelung, anda mungkin menghadapi situasi di mana anda sedia ada pendekatan menjadi pendek. Mari kita terokai kes penggunaan tertentu dan sediakan penyelesaian yang dikemas kini menggunakan formula tersuai.

Percubaan Asal dan Kekurangannya

Kod yang anda kongsi pada mulanya cuba mengenal pasti nombor perdana menggunakan pendekatan berasaskan gelung. Walau bagaimanapun, ia menghadapi batasan dalam mengenal pasti nombor perdana dengan betul, terutamanya disebabkan kaedah membahagi nombor.

Formula dan Pelaksanaan yang Dioptimumkan

Untuk menangani perkara ini, pertimbangkan untuk melaksanakan fungsi isPrime() yang disebut dalam respons yang disediakan:

<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;
}
Salin selepas log masuk

Menggabungkan Formula ke dalam Gelung

Kini, anda boleh memanfaatkan fungsi ini dalam satu gelung untuk mencari dengan cekap nombor perdana:

<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>
Salin selepas log masuk

Dengan pendekatan yang dikemas kini ini, anda kini boleh mengenal pasti nombor perdana dengan tepat sehingga had yang ditentukan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mencari nombor perdana dengan cekap menggunakan gelung dan formula tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan