PHP 中使用嵌套循环的素数

Prime numbers using nested loops in PHP

我是一名初学者,目前正在学习基础课程 PHP。我正在练习嵌套循环,其中一个 material 问题包括以下内容:
The program I was attempting to execute

我尝试使用以下代码(这是我用来检查通过 html 表单输入的数字是否为质数的代码,但我对其进行了修改以适合这个问题)但它似乎不正确,因为它只打印 2 和 3
这是我写的 php 代码:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
    <?php
        echo "<h3>The prime numbers up to 20 are:</h3>";
        echo "<p>1</p>";
        //Declaration of Variables
        $status=true;
        //Nested Loop and Conditions
        for( $i = 2; $i <= 20; $i++ ){
            for( $k = 2; $k < $i; $k++ ){
                if( $i % $k == 0 ){
                    $status=false;
                }
            }
            //Printing
            if($status==true)
                echo "<p>$i</p>";
        }
        ?>
    </body></html>

谁能告诉我我做错了什么?我知道这个问题看起来很简单,但请原谅我,因为我还在学习。这也是我在该平台上的第一个问题,如果格式有点不对,请原谅我。提前谢谢你:)

欢迎来到社区

我添加了 1 个计数器

如果 i 和 k 等于 0,我将计数器加 1 并退出循环

如果计数器不为零,则它不是素数

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <?php
    echo "<h3>The prime numbers up to 20 are:</h3>";
    echo "<p>1</p>";
    //Declaration of Variables
    $counter = 0;
    //Nested Loop and Conditions
    for( $i = 2; $i <= 20; $i++ ){
        $counter = 0;
        for( $k = 2; $k < $i; $k++ ){
            if( $i % $k == 0 ){
                $counter +=1;
                break;
            }
        }
        if($counter == 0){
            echo "<p>".$i."</p>";
        }
    }
?>

试试这个,(如果你想在你的结果列表中有 1 你应该开始 $i=1 )

for ($i=2; $i <= 20  ; $i++) {
  for ($k=2; $k <= 20 ; $k++) {
    $divided = false;
    if (($i%$k == 0 && $i != $k)) {
      $divided = true;
      break;
    }
  }

  if (!$divided) {
    echo $i .'<br>';
  }
}