判断一个数是不是质数
function isprime($n){ if($n < 2){ return false; } for ($i=2; $i*$i <= $n; $i++) { if($n % $i == 0){ return false; } } return true; }
使用上面的函数或者直接在下面的函数中判断,找寻一定范围内的质数。
function sieve($n){ $array = array(); for ($i=0; $i <= $n; $i++) { if($i % 2 != 0){ if($i > 2){ // if(isprime($i)){ // $array[] = $i; // } $isprime = true; for ($j=2; $j <= ceil(sqrt($i)); $j++) { if($j % 2 != 0){ if($i % $j == 0){ $isprime = false; break; } } } if($isprime){ $array[] = $i; } } } } return $array; }
print_r(sieve(100));
Array ( [0] => 3 [1] => 5 [2] => 7 [3] => 11 [4] => 13 [5] => 17 [6] => 19 [7] => 23 [8] => 29 [9] => 31 [10] => 37 [11] => 41 [12] => 43 [13] => 47 [14] => 53 [15] => 59 [16] => 61 [17] => 67 [18] => 71 [19] => 73 [20] => 79 [21] => 83 [22] => 89 [23] => 97 )