PHP中获取两个数的所有公因数怎么实现
Admin 2022-08-27 群英技术资讯 1420 次浏览
本篇内容介绍了“PHP中获取两个数的所有公因数怎么实现”的有关知识,在实际项目的操作过程或是学习过程中,不少人都会遇到这样的问题,接下来就让小编带大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先我们来了解一下什么是公因(约)数和最大公因(约)数?
因(约)数是指能整除一个整数的数,公因(约)数则是能同时整除几个整数的数。而能同时整除几个整数的 公约数 可以有多个,其中最大的那个就是最大公因数。
例如:数30和40,它们的公因数有1、2、5、10;其中10最大,因此数30和40的最大公因数为10。
那么我们怎么使用PHP来获取两个整数a和b间的公因数和最大公因数呢?
思路:
1、分别获取两个整数a和b间因数(这个在上文PHP循环学习八中有详细介绍),然后将这些因数分别存到一个数组中。这里以数30为例,使用for循环求所有因数:
for($i=1;$i<30;$i++){
if($a%$i==0){//分解因数
$arr1[]=$i;
}
}输出这个数组$arr1
var_dump($arr1);
看看结果:

可以看出数30的因数有:1、2、3、5、6、10、15。
利用上述的方法我们再获取数40的所有因数,将它们存到一个数组$arr2中:

可以看出数40的因数有:1、2、4、5、8、10、20。
2、两个整数的所有因数都获取了,就可以使用array_intersect()函数来求它们间的所有公因数了。(array_intersect()函数可以计算两个数组的交集。
$result=array_intersect($arr1,$arr2); var_dump($result);
输出结果为:

这样就可以得出数30和40的所有公因数:1、2、5、10。
3、30和40的所有公因数都在交集数组$result中,我们就可以使用max()函数来获取数组中最大的那个数,即最大公因数。
$max=max($result); echo "最大公因数为: $max";
输出结果为:

OK,完成!将上面的代码封装在一个函数里面:
<?php
header("Content-type:text/html;charset=utf-8");
function gcd($a,$b){
$arr1=array();
$arr2=array();
for($i=1;$i<$a;$i++){
if($a%$i==0){//分解因数
$arr1[]=$i;
}
}
for($i=1;$i<$b;$i++){
if($b%$i==0){//分解因数
$arr2[]=$i;
}
}
$result=array_intersect($arr1,$arr2);
echo "数 $a 和 $b 的公因(约)数有:";
foreach($result as $value){
echo $value." , ";
}
$max=max($result);
echo "<br>最大公因数为: $max <br><br>";
}
gcd(30,40);
gcd(12,16);
?>输出结果:

好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在php项目中,分页是非常常见的,那么php分页功能该如何实现呢?本文将为大家带来的就是php分页功能的3种实现方法,对分页不太熟的同学们有福利了哦
今天本文的主要内容就是聊聊利用PHP怎么快速获取PHP版本号、当前 PHP 版本支持的最大文件名长度。下面就来给大家介绍几种方法。
thinkPHP是PHP中的众多框架之一,这篇文章就主要给大家介绍TP5框架安全机制,通过实例来给大家分析防止sql注入和表单合法性检测的操作,感兴趣的朋友可以看一看。
在本篇文章里小编给大家整理的是一篇关于php png失真的原因及解决办法,有需要的朋友们可以跟着学习参考下。
php变量的引用赋值使用:1、引用赋值,使用这种赋值方法意味着新的变量引用原始变量,改变一个会影响另一个。2、只有有名字的变量才能赋值,且unset()函数释放其中一个,不会影响另一方。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008