在前面的文章《如何用PHP计算小于100的素数之和?》中,我们给大家介绍了用PHP计算素数和的方法,想必大家对素数的判断有所了解。那么如果我们想要获取某个整数范围中的所有素数个数,该如何实现呢?
比如我们要计算n中所有素数的个数,n的范围区域是1≤n≤9999,999。
下面我们就给大家介绍PHP计算指定区域的素数总个数的方法:
代码如下:
$max = 1000000;
// 初始化数组
for ($i = 0; $i
$array [$i] = 1;
}
$array [1] = 0;
// 由于0和1不是素数,从2开始判断
for ($i = 2; $i
if ($array [$i] === 0)
continue;
else
{
For ($j = $i * $i; $j
$array [$j] = 0;
}
}
for ($i = 2; $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计算指定区域的素数总个数的方法介绍,希望对需要的朋友有所帮助!