在计算机科学中,素数指的是只能被1和本身整除的正整数。素数可以用于加密,数学推导和算法优化等领域。在实际应用中,求素数的算法也是非常重要的知识点之一,今天我们就来探讨如何用php中用脚本实现求素数。
筛选法是求素数的经典算法,其核心思想是不断地筛选掉不是素数的数,最终留下的就是素数。具体步骤如下:
实现代码如下:
function sieve($n) {
$prime = array();
for($i = 2; $i <= $n; ++$i) {
$prime[$i] = true;
}
for($i = 2; $i <= sqrt($n); ++$i) {
if($prime[$i]) {
for($j = $i*$i; $j <= $n; $j += $i) {
$prime[$j] = false;
}
}
}
return array_keys(array_filter($prime));
}费马小定理是一个重要的数论定理,可以用来判断一个数是否为素数。费马小定理的表述如下:若p是质数,a是任意整数,则a^(p-1)≡1(mod p)。
具体步骤如下:
本系统经过多次升级改造,系统内核经过多次优化组合,已经具备相对比较方便快捷的个性化定制的特性,用户部署完毕以后,按照自己的运营要求,可实现快速定制会费管理,支持在线缴费和退费功能财富中心,管理会员的诚信度数据单客户多用户登录管理全部信息支持审批和排名不同的会员级别有不同的信息发布权限企业站单独生成,企业自主决定更新企业站信息留言、询价、报价统一管理,分系统查看分类信息参数化管理,支持多样分类信息,
0
立即学习“PHP免费学习笔记(深入)”;
实现代码如下:
function is_prime($n) {
if($n <= 1) {
return false;
}
for($i = 0; $i < 10; ++$i) {
$a = rand(1, $n-1);
if(gcd($a, $n) != 1) {
return false;
}
if(mod_pow($a, $n-1, $n) != 1) {
return false;
}
}
return true;
}
function gcd($a, $b) {
return ($b == 0) ? $a : gcd($b, $a%$b);
}
function mod_pow($base, $exp, $modulus) {
$result = 1;
while($exp > 0) {
if($exp % 2 == 1) {
$result = ($result * $base) % $modulus;
}
$exp = $exp >> 1;
$base = ($base * $base) % $modulus;
}
return $result;
}以上就是用php中用脚本实现求素数的两种方法。需要注意的是,在求解大范围的素数时,筛选法往往比费马小定理更加高效。
以上就是php中用脚本实现求素数的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号