质数:质数又称素数。一个大于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)
,其他的类似。【仅以此献给初学者】