完成思绪
轮回一切可以的备选数字,然后和中心数以下且大于即是2的整数举行整除比较,如果可以被整数,则一定不是质数,相反,就是质数。
算法(引荐进修:PHP编程从入门到通晓)
这也是最可以先想到的,也就是直接和备选数的中心数去比较,算法源码以下(可继承优化下去):
/** * 猎取一切的质数 * @param array $arr * @return array */function get_prime_number($arr = []) { // 质数数组 $primeArr = []; // 轮回一切备选数 foreach ($arr as $value) { // 备选数和备选数的中心数以下的数字整除比较 for ($i = 2; $i <= floor($value / 2); $i++) { // 可以整除,则不是质数,退出轮回 if ($value % $i == 0) { break; } } // 被除数$j比备选数的中心数大的则为质数 // 如许推断的根据: // 如果备选数为质数,则内层的for轮回不会break退出,则实行终了,$i会继承+1,即末了$i = floor($value / 2) + 1 // 如果备选数不为质数,则内层的for轮回碰到整除就会break退出,$i不会继承+1,即末了$i <= floor($value / 2) if ($value != 1 && $i > floor($value / 2)) { $primeArr[] = $value; } } return $primeArr; }
以上就是php推断一个整数是不是是质数的细致内容,更多请关注ki4网别的相干文章!