找出一定范围内的素数(质数)
判断一个数是不是质数
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
)

浙公网安备 33010602011771号