判断101-200之间有多少个素数,并输出所有素数。
分析:质数(prime number)又称素数,有无限个。除了1和它本身以外不再有其他的除数整除。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积,最小的质数是2。
程序:
header('Content-type:text/html;charset="utf-8"');
/**
* 求范围内的所有素数
* @param stirng $begin 开始数值
* @param stirng $end 结束数值
* @return string 返回所有的素数
*/
function primeNumber($begin,$end){
$arr = array();
for($i=$begin; $i<=$end; $i++){
if(isPrime($i)){
$arr[] = $i;
}
}
return $arr;
}
/**
* 判断一个数字是否为素数
* @param $n 要判断的数字
* @return 如果是素数返回true,如果不是返回false
*/
function isPrime($n){
if($n <= 3){
return true;
}else if($n%2 === 0 || $n%3 === 0){
return false;
}else{
for($i = 5; $i*$i <= $n; $i += 6){
if($n%$i === 0 || $n%($i+2) === 0){
return false;
}
}
return true;
}
}
//求100-200之间的素数
var_dump(primeNumber(100,200));