求素数

来源:互联网 发布:淘宝上那家衣服质量好 编辑:程序博客网 时间:2024/05/16 04:54
<?php/*** 素数(筛选法)* 思路: 假如都是素数做标记为1, 从2到n的倍数都不是素数标记为0,取出做标记为1的全部都是素数*/function Prime($n){// 放素数的数组$prime = array();// 假如都是素数,并做标记为1$arr_prime = array_fill(2,$n-1,1);// 从2到n的倍数都不是素数标记为0(优化取到$n开平方即可)for($i=2,$len=sqrt($n); $i<=$len; ++$i){for($j=$i+$i; $arr_prime[$i]==1 && $j<=$n; $j+=$i){$arr_prime[$j] = 0;}}// 标记为1的都是素数foreach($arr_prime as $k => $v){if($v == 1){$prime[] = $k;}}return $prime;}$x = Prime(101);print_r($x);?>

原创粉丝点击