PHP筛选法求质数。

参照了网上的一些写法和想法

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;
}


 


posted @ 2011-12-16 15:25  末世  阅读(189)  评论(0编辑  收藏  举报