本文介绍了查找在给定范围内的最大素数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要找到在给定范围的最高质数。这里是我的code这适用于0-100,但如果我给0-125它显示质数为125。
I need to find the highest prime number in a given range. Here is my code which works for 0-100 but if I give 0-125 it is showing prime number as 125.
<?php $flag=0; $b=125; for($i=$b;$i>=0;$i--) { if($i%2!=0) { for($b=3;$b<10;$b++) { if($flag==0) { echo('<br>'); if($i%$b!=0) { echo('highest prime number is'.$i); $flag=1; break; } elseif ($i%$b==0) { break; } } } } } ?>在上面的code我已范围0-125
In the above code I have taken the range from 0-125
推荐答案没错,问题是算法...
Yup the problem is algorithmic...
1)你需要检查截止到的sqrt($ B)即11在这种情况下
1) You'll need to check up till sqrt($b) i.e. 11 in this case
2) $标记逻辑有点乱了,没有用改变标志,则突破之后...
2) The $flag logic is kinda messed up, no use changing the flag then breaking out right after...
<?php $flag=0; $b=125; $sq=sqrt($b); for($i=$b;$i>=0;$i--) { if($i%2!=0) { for($b=3;$b<=$sq;$b++) { if($i%$b!=0) { $flag=1; } elseif($i%$b==0) { $flag=0; break; } } if($flag==1){ echo('highest prime number is '.$i); break; } } } ?>更多推荐
查找在给定范围内的最大素数
发布评论