查找在给定范围内的最大素数 [英] Find the highest prime number in a given range
本文介绍了查找在给定范围内的最大素数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要找到在给定范围的最高质数。
这里是我的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;
}
}
}
?>
这篇关于查找在给定范围内的最大素数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文