一、解法一:
1)思路:
- 判断是否是质数;
function is_prime ($num)
{
for ($i = 2; $i < $num; $i++) {
// 判断是否为质数
if ($num % $i == 0) {
return false;
}
}
return $i;
}
-
打印出100以内的质数;
-
定义一个变量,接收每行的显示个数,将所有的质数以每行5个显示
$n = 0;
for ($i = 2; $i <= $num; $i++) {
if (is_prime($i)) {
echo $i.' ';
$n++;
// 每行显示5个
if ($n % 5 == 0) {
echo '<br>';
}
}
}
2) 完整代码:
// 判断是否为质数
function is_prime($num)
{
for ($i = 2; $i < $num; $i++) {
if ($num % $i == 0) {
return false;
}
}
return $i;
}
$n = 0; // 每行显示的个数
// 100以内的质数
for ($i = 2; $i <= 100; $i++) {
if (is_prime($i)) {
echo $i.' ';
$n++;
// 每行5个显示
if ($n % 5 == 0) {
echo '<br>';
}
}
}
二、解法二:
1) 思路:
- 判断是否为质数;
function is_prime ($num)
{
for ($i = 2; $i < $num; $i++) {
if ($num % $i == 0) {
return false;
}
}
return $i;
}
- 输出100以内的质数,将符合条件的质数,保存到一个数组中;
$arr = [];
for ($i = 2; $i <= 100; $i++) {
$res = is_prime($i); // 调用函数,判断是否为质数
if ($res) {
$arr[] = $res;
}
}
- 将符合要求的质数,按每行5个输出;
$count = count($arr);
for ($i = 0; $i < $count; $i++) {
echo $arr[$i].' ';
// 判断每行的个数,是否为5个
if (($i+1) % 5 == 0) {
echo "<br>";
}
}
2)完整代码:
// 判断是否为质数
function is_prime($num)
{
for ($i = 2; $i < $num; $i++) {
if ($num % $i == 0) {
return false;
}
}
return $i;
}
$arr = [];
// 输出100以内的质数
for ($i = 2; $i <= 100; $i++) {
$res = is_prime($i); // 调用函数判断是否为质数
// 将所有的质数,存入数组中
if ($res) {
$arr[] = $res;
}
}
// 每行显示5个
$count = count($arr);
for ($i = 0; $i < $count; $i++) {
echo $arr[$i].' ';
// 判断每行的个数,是否为5个
if (($i+1) % 5 == 0) {
echo "<br>";
}
}
三、解法三:
/**
* getPrimeNum 获取指定范围内质数,且每行显示指定个数
* @param int $num 指定范围值(确定的一个数)
* @param int $num2 每行显示的个数
*/
function getPrimeNum($num, $num2)
{
$cols = 0;
// 1. 打印2-100之间所有的数
for ($i = 2; $i <= $num; $i++) {
// 2. 创建一个布尔值,用来保存结果(默认 $i 为质数)
$flag = true; // 默认为质数
// 3. 判断 $i 是否是质数
// 获取 2~i 之间的所有的数
for ($j = 2; $j < $i; $j++) {
// 判断 $i 能否被 $j 整除
if ($i % $j == 0) {
// 如果进入判断,则证明 $i不是质数,修改 $flag的值 为false
$flag = false;
}
}
// 如果是质数,则打印 $i的值
if ($flag) {
echo $i. ' ';
$cols++;
// 每行显示的个数
if ($cols == $num2) {
$cols = 0;
echo '<br>';
}
}
}
}
$num = 100;
$num2 = 5;
getPrimeNum($num, $num2); // 调用函数
以上三种情况的运行结果如下: