参照了网上的一些写法和想法
function sift_prime($max) {
for ($i = 2; $i <= $max; $i ++) {//把值赋值为bool,加快存取速度
$data[$i] = true;
}
for ($i = 2; $i < $max; $i ++)
if (true == $data[$i])
for ($j = $i + 1; $j <= $max; $j ++)
if (0 === $j % $i)//如果能整除,设为false
$data[$j] = false;
foreach ($data as $key => $prime) {
if (true == $prime)//如果值为true,取其下标即为质数
$newdata[] = $key;
}
return $newdata;
}