前面的文章《如何用PHP計算小於100的質數總和? 》中,我們為大家介紹了用PHP計算質數和的方法,想必大家對質數的判斷有所了解。那如果我們想要取得某個整數範圍中的所有質數個數,該如何實現呢?
例如我們要計算n中所有質數的個數,n的範圍區域是1≤n≤9999,999。
下面我們就來介紹PHP計算指定區域的質數總個數的方法:
程式碼如下:
<?php $max = 1000000; // 初始化数组 for ($i = 0; $i <$max; $i ++) { $array [$i] = 1; } $array [1] = 0; // 由于0和1不是素数,从2开始判断 for ($i = 2; $i<$max; $i ++) { if ($array [$i] === 0) continue; else { For ($j = $i * $i; $j<$max; $j += $i) { $array [$j] = 0; } } for ($i = 2; $i <$max; $i ++) { $array [$i] += $array [$i-1]; } While (1) { $res = fscanf(STDIN, '%d', $n); if ($res == 0) break; $cnt = $array [$n]; echo "小于等于n的质数的个数为: "; echo $cnt.PHP_EOL; } }
輸出:
小于等于n的质数的个数为:168
註:質數又叫質數(prime number),有無限個。質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。
相關推薦:《PHP教學》
本篇文章就是關於PHP計算指定區域的質數總個數的方法介紹,希望對需要的朋友有所幫助!
以上是PHP如何計算指定區域的質數總個數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!