PHP輸出100以內的質數(包括普通寫法和數組形式輸出)

質數:質數又稱素數。一個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱爲合數。

在這裏我們採用函數封裝的寫法,可以靈活的去改變數的範圍。


1、普通的寫法:

isPrimeNum(100); // 100以內的質數
/**
 * 輸出某個範圍內的所有質數
 * @param  int  $num 範圍數
 * @return int  $i   符合條件的所有質數
 */
function isPrimeNum($num)
{
    for ($i = 2; $i <= $num; $i++) {
        // 創建一個標誌,用來保存結果,默認$i是質數
        $flag = true;

        // 判斷 $i是否是質數
        // 獲取 2~$i 之間所有的數
        for ($j = 2; $j < $i; $j++) {
            // 判斷 $i 是否能被整除
            if ($i % $j == 0) {
                // 如果進入判斷,則證明 $i不是質數
                $flag = false;
                break;
            }
        }

        // 如果是質數,則打印 $i 的值
        if ($flag) {
            echo $i . "<br>";
        }
    }
}

運行結果:

在這裏插入圖片描述


2、以數組的形式輸出:

isPrimeNum(100); // 輸出100內的質數
/**
 * 輸出某個範圍內的所有質數
 * @param  int    $num 範圍數
 * @return array  $arr 符合條件的質數組成的數組
 */
function isPrimeNum($num)
{
    $arr = [];
    for ($i = 2; $i <= $num; $i++) {
        // 創建一個標誌,用來保存結果,默認$i是質數
        $flag = true;

        // 判斷 $i是否是質數
        // 獲取 2~$i 之間所有的數
        for ($j = 2; $j < $i; $j++) {
            // 判斷 $i 是否能被整除
            if ($i % $j == 0) {
                // 如果進入判斷,則證明 $i不是質數
                $flag = false;
                break;
            }
        }

        // 如果是質數,則打印 $i 的值
        if ($flag) {
            array_push($arr, $i);
        }
    }
    print_r($arr);
}

運行結果:

在這裏插入圖片描述

注:大家如果想輸出其他範圍內的質數,在調用函數的時候,傳入你需要的數即可。如求50以內的所有質數,則傳入的數爲50,此時調用的函數爲 isPrimeNum(50),其他的類似。【僅以此獻給初學者】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章