PHP中关于判断一个数是否是素数的表单操作,有个地方不知道该怎么改
发布网友
发布时间:2022-04-18 10:50
我来回答
共2个回答
热心网友
时间:2022-04-18 12:19
for语句缺少步长,你的代码会进入死循环,下面的语句:
for($i=1;$i<=$n1;){
应该修改为:
for($i=1;$i<=$n1;$i++){追问我更改之后还是没法输出,兄弟能帮我看下整段代码哪里出错,改了能够运行吗?
追答
实在不习惯你的编程,改得比较多,在我的服务器上测试通过:
<?php
$c=0;
$n1=$trans="";
if($_POST){
$n1=$_POST['n1'];
for($i=2;$i<$n1;$i++){
if($n1%$i==0){
$c++;
}
}
echo "$n1".($c?'不':'')."是一个素数";
}
echo <<<END
<form action="$PHP_SELF" method="post">
<input type="text" name="n1" value="$n1">
<input type="submit" name="submit1" value="判断">
</form>
END;
?>
怕你粘贴的时候错了符号,附件传一份。
热心网友
时间:2022-04-18 13:37
for 循环判断的太多了 影响性能, 还有没有判断小于二的数
下面我给的答案:
function is_prime(int $n): bool {
if($n < 2) {
return false;
exit;
}
if ($n == 2){
return true;
exit;
}
for ($i=2; $i++; $i <= (($n+1)/2)){
if(!($n/$i)){
return false;
exit;
}
}
return true;
}