質數:質數又稱素數。一個大於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)
,其他的類似。【僅以此獻給初學者】