本文介绍了如何计算在PHP不到1分钟的0到100000000质数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
请帮我算0质数到100000000,因为我用它来写的,但它的工作原理非常缓慢:
下面是我的code:
$ N =亿;
$答案= 0;
为($ i = 2,$ J = 2; $ I< = $ N,$ I ++){
为($ J = 2; $ J< $ I; $ J ++){
如果($ I%附加$ J == 0){
打破;
}
}
如果(附加$ J $ == I){
$回答++;
}
}
回声$回答。 PHP_EOL;
解决方案
埃拉托色尼的退房筛。这个问题可以在不到2秒的现代桌面上得到解决。您也可以尝试位运算筛它执行的内存和速度的术语更好。
please help me to count prime number between 0 to 100000000 because I use to write but it works very slowly:
Here is my code:
$n =100000000;
$answer =0;
for ($i = 2, $j = 2; $i <= $n; $i++) {
for ($j = 2; $j < $i; $j++) {
if ($i % $j == 0) {
break;
}
}
if ($j == $i) {
$answer++;
}
}
echo $answer . PHP_EOL;
解决方案
Check out Sieve of Eratosthenes. This problem can be solved in less than 2 seconds on a modern desktop. You can also try Bitwise Sieve which performs better in term of memory and speed.
这篇关于如何计算在PHP不到1分钟的0到100000000质数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!