PHP循环学习九:获取给定两数间的最大公因数
时间:2021-08-25
来源:互联网
今天PHP爱好者给大家带来在PHP获取给定两数间的最大公因数具体教程分享,上一篇文章中《PHP数组学习之返回给定两数间的全部公因数和最大公因数》,我们中我们介绍了一种获取两个整数的全部公因数,求最大公约数的方法。这次我们来再给大家介绍一种求最大公约数的方法,感兴趣的朋友可以学习了解一下~希望对大家有所帮助。
上一篇文章中,我们是将两个整数的所有因数分别放在两个数组中,然后使用array_intersect()函数求这两个数组的交集,就可得到一个包含全部公因数的数组;再使用max()函数计算交集数组中最大数,就获取最大公因数。
是不是有点麻烦,还要先一个个求出所有因数,然后计算出所有公因数,最后才能求出最大公约数。下面介绍一个简单通用的方法(可以用在其他语言中)。
这次我们不使用PHP内置函数,就利用if判断语句和while循环语句来求给定两个整数间的最大公约数。
实现步骤:有两个变量a,b
第一步:要确保大数放a中、小数放b中。
这就需要使用if语句来判断,如果 a < b,就定义一个中间变量temp,实现 a与b值的交换
if ($a < $b) { //a < b,则交换两个数
$temp = $a;
$a = $b;
$b = $temp;
}
第二步:求
a/b
的余数,值赋给 r
$r = $a % $b;
第三步:判断 余数r 是否为0。
如果
r=0
,则上面的b就是最大公约数;如果r!=0
,就需要把b的值赋给a,r的值赋给b,继续求 a/b 的余数,判断 余数r 是否为0。这就需要利用到循环(这里使用while循环):
while ($r != 0) {
$a = $b;
$b = $r;
$r = $a % $b;
}
第四步:就是输出最大公因数b。
下面看看实现代码:
<?php
header("Content-type:text/html;charset=utf-8");
function gcd($a, $b) {
$a1 = $a;
$b1 = $b;
if ($a < $b)//a < b,则交换两个数
{
$temp = $a;
$a = $b;
$b = $temp;
}
$r = $a % $b;
while ($r != 0) {
$a = $b;
$b = $r;
$r = $a % $b;
}
echo "数$a1 和$b1 的最大公因数为: $b <br><br>";
}
gcd(30, 40);
gcd(12, 16);
gcd(15, 12);
?>
输出结果:
好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程
以上就是PHP循环学习九:获取给定两数间的最大公因数的详细内容,更多请关注php爱好者其它相关文章!
-
区块链十大正规平台排行及最新推荐指南 时间:2025-05-08
-
Lombok插件是干嘛的 Lombok插件和依赖的区别 时间:2025-05-08
-
metamask如何添加比特币?metamask添加比特币的详细教程 时间:2025-05-08
-
select语句的基本语法 select语句在SQL的用法 时间:2025-05-08
-
NFT购买全攻略:流程详解与热门交易平台推荐 时间:2025-05-08
-
Java中next()、nextInt()和nextLine()的区别和用法 时间:2025-05-08
今日更新
-
如何通过PHP来识别不唯一的电子邮件地址
阅读:18
-
一招教你使用css给HTML字体添加背景图(代码分享)
阅读:18
-
一招搞定css相对原点定位背景图片
阅读:18
-
一招搞定css定位元素的背景图像
阅读:18
-
css如何设置指定网格的大小和位置
阅读:18
-
PHP循环学习八:统计1~10000的完数个数,并输出全部完数
阅读:18
-
用JavaScript计算一个正整数的因数
阅读:18
-
示例详解用javascript隐藏电子邮件地址
阅读:18
-
分享五个好用的VueUse函数,一起用起来吧!
阅读:18
-
教你一招搞定css背景图的大小
阅读:18