在前面的文章《如何用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计算指定区域的素数总个数的方法介绍,希望对需要的朋友有所帮助!
Atas ialah kandungan terperinci PHP如何计算指定区域的素数总个数?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!