除了暴力的试除法以外,还有什么方法吗,这里应该不能用筛除,那就得一个一个试啦?
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;}
添加回答
举报
0/150
提交
取消