为了账号安全,请及时绑定邮箱和手机立即绑定

如何找到一个给定整数最近的质数?

如何找到一个给定整数最近的质数?

慕无忌1623718 2019-03-29 22:08:11
除了暴力的试除法以外,还有什么方法吗,这里应该不能用筛除,那就得一个一个试啦?
查看完整描述

2 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

没有想到更好的方法,写一个PHP版的试除法,希望有人能提供更优的算法。:)
functionisPrime($n)
{
if($n<2)returnfalse;
$m=sqrt($n);
for($i=2;$i<$m;$i++){
if($n%$i==0)returnfalse;
}
return$n;
}
functionclosestPrime($n)
{
if(isPrime($n)){
echo'Youenteraprime.';
returnfalse;
}
$left=$right=$n;
while(!isPrime(--$left));
while(!isPrime(++$right));
$result=($n-$left)>($right-$n)?$right:$left;
echo'Theclosetprimeof'.$n.'is'.$result;
}
                            
查看完整回答
反对 回复 2019-03-29
  • 2 回答
  • 0 关注
  • 830 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信