本文介绍了如何计算在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质数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-02 18:26