下面的程序会找出 1000000 以内的所有质数。
define('MAX_NUM', 1000000);
$all = array_fill(0,MAX_NUM,0);
for ($i = 2; $i < MAX_NUM; $i++) {
if ($all[$i] == 0) {
echo $i,"\n"; //测试性能时去掉这行。输出会占据大部分时间。
for ($j = $i; $j < MAX_NUM; $j+=$i) {
$all[$j] = 1;
}
}
}
补充:
array_fill() 用 value 参数的值将一个数组填充 num 个条目,键名由 start_index 参数指定的开始。注意 num 必须是一个大于零的数值,否则 PHP 会发出一条警告。
没有评论:
发表评论