首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >php程序出错

php程序出错
EN

Stack Overflow用户
提问于 2011-12-19 14:43:21
回答 6查看 158关注 0票数 2

我只是PHP的初学者。我试着写了一个素数的程序,但是结果不正确。我找不到错误。我怎样才能纠正这个错误呢?下面是我的代码:

代码语言:javascript
运行
复制
<?php
$n=15;
for($i=2; $i<=$n; $i++)
{
echo "<br />";
for($j=2; $j<=$i-1; $j++)
    {
        $k=$i%$j;
        if($k==0)
        {

        break;
        }
        else echo $i."is prime";
        break;
    }

}
?>
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-12-19 14:51:25

试试这个:

代码语言:javascript
运行
复制
        <?php
        $n=15;
        for($i=2; $i<=$n; $i++)
        {
            $k = 1;     //assume that it is prime

            for($j=2; $j<$i; $j++)  //if $i is 2, then it won't enter the loop as it will not match the condition ($j<$i)
            {
                $k=$i%$j;
                if($k==0) 
                    break;  //if not prime, $k will be set as 0. So, break.

            }
            if($k!=0)   // if $k <> 0, then it is prime
                echo "<br />" . $i." is prime";
        }

        ?>

编辑已更新代码以处理“%2”

票数 2
EN

Stack Overflow用户

发布于 2018-09-12 18:57:02

试试这个:(使用循环进行白化)

代码语言:javascript
运行
复制
function is_prime($p) {
    return ($p > 1) &&  (($p%2 >= 1) && ($p%3 >= 1) && ($p%5 >= 1)) ||  in_array($p, [2,3,5]);
}

echo is_prime(15);

票数 1
EN

Stack Overflow用户

发布于 2011-12-19 14:51:19

在它第一次运行的时候,你基本上就是在通过调用以下代码来打破循环:

代码语言:javascript
运行
复制
if (something) {
    break;
} else {
    break;
}

无论发生什么,它都会崩溃。你需要去掉最后一个突破口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8557974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档