Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Fungsi PHP Boleh Menentukan dengan Cekap sama ada Nombor adalah Perdana?

Bagaimana Fungsi PHP Boleh Menentukan dengan Cekap sama ada Nombor adalah Perdana?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-02 02:51:03732semak imbas

How Can a PHP Function Efficiently Determine if a Number is Prime?

Formula Mencari Nombor Perdana dalam Gelung

Soalan ini bertujuan untuk mengenal pasti nombor perdana menggunakan mekanisme gelung. Secara khusus, soalan itu bertujuan untuk mencipta fungsi PHP untuk mencari nombor perdana dengan cekap.

Untuk memahami proses tersebut, mari kita perkenalkan konsep nombor perdana. Nombor perdana ialah nombor bulat yang lebih besar daripada 1 yang tidak boleh dibahagi dengan mana-mana nombor bulat lain kecuali 1 dan nombor itu sendiri.

Takrifan ini mencadangkan cara mudah untuk menyemak keutamaan: bahagikan nombor itu dengan semua integer daripada 2 hingga petak punca nombor. Jika mana-mana bahagian ini mempunyai baki, nombornya ialah perdana.

Fungsi PHP yang disediakan dalam jawapan soalan mematuhi konsep ini:

<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;
}</code>

Fungsi ini menggunakan tatasusunan untuk menyimpan faktor nombor dan menyemak baki bahagian. Jika sebarang baki adalah sifar, ia menunjukkan kehadiran faktor, menjadikan nombor itu bukan perdana. Walau bagaimanapun, jika tiada faktor ditemui, nombor itu dianggap perdana.

Atas ialah kandungan terperinci Bagaimana Fungsi PHP Boleh Menentukan dengan Cekap sama ada Nombor adalah Perdana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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