PHP如何计算并输出两数间所有公因数及最大公因数?

更新于
2026-09-29 03:17:16
3阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1067个文字,预计阅读时间需要5分钟。

PHP如何计算并输出两数间所有公因数及最大公因数?

在之前的文章《PHP数组学习之更改键/值的的大小写》中,我们介绍了PHP中如何更改数组键名或值的的大小写。这次,我们将探讨如何获取两个整数的所有公约数,并找出最大公约数。

要获取两个整数的所有公约数,我们可以编写一个函数,该函数遍历从1到这两个数的较小值的所有整数,并检查它们是否是两个数的公约数。以下是实现这一功能的代码:

phpfunction getCommonDivisors($a, $b) { $commonDivisors=[]; $min=min($a, $b); for ($i=1; $i <=$min; $i++) { if ($a % $i==0 && $b % $i==0) { $commonDivisors[]=$i; } } return $commonDivisors;}

function getMaxCommonDivisor($a, $b) { $commonDivisors=getCommonDivisors($a, $b); return max($commonDivisors);}

// 示例$a=48;$b=72;$commonDivisors=getCommonDivisors($a, $b);$maxCommonDivisor=getMaxCommonDivisor($a, $b);

echo 公约数:;print_r($commonDivisors);echo 最大公约数:;echo $maxCommonDivisor;

PHP如何计算并输出两数间所有公因数及最大公因数?

这段代码首先定义了一个`getCommonDivisors`函数,用于获取两个整数的所有公约数。然后定义了一个`getMaxCommonDivisor`函数,用于获取最大公约数。最后,我们使用示例数据来演示如何使用这些函数。

在之前的文章《PHP数组学习之更改键/值的大写或小写》中,我们介绍了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()函数可以计算两个数组的交集,不懂可以阅读《PHP数组学习之如何比较两个数组求交集》)。

$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视频教程

最后给大家推荐一个PHP数组的免费视频教程:PHP函数之array数组函数视频讲解,快来学习吧!

以上就是PHP数组学习之返回给定两数间的全部公因数和最大公因数的详细内容,更多请关注自由互联其它相关文章!

标签:全部

本文共计1067个文字,预计阅读时间需要5分钟。

PHP如何计算并输出两数间所有公因数及最大公因数?

在之前的文章《PHP数组学习之更改键/值的的大小写》中,我们介绍了PHP中如何更改数组键名或值的的大小写。这次,我们将探讨如何获取两个整数的所有公约数,并找出最大公约数。

要获取两个整数的所有公约数,我们可以编写一个函数,该函数遍历从1到这两个数的较小值的所有整数,并检查它们是否是两个数的公约数。以下是实现这一功能的代码:

phpfunction getCommonDivisors($a, $b) { $commonDivisors=[]; $min=min($a, $b); for ($i=1; $i <=$min; $i++) { if ($a % $i==0 && $b % $i==0) { $commonDivisors[]=$i; } } return $commonDivisors;}

function getMaxCommonDivisor($a, $b) { $commonDivisors=getCommonDivisors($a, $b); return max($commonDivisors);}

// 示例$a=48;$b=72;$commonDivisors=getCommonDivisors($a, $b);$maxCommonDivisor=getMaxCommonDivisor($a, $b);

echo 公约数:;print_r($commonDivisors);echo 最大公约数:;echo $maxCommonDivisor;

PHP如何计算并输出两数间所有公因数及最大公因数?

这段代码首先定义了一个`getCommonDivisors`函数,用于获取两个整数的所有公约数。然后定义了一个`getMaxCommonDivisor`函数,用于获取最大公约数。最后,我们使用示例数据来演示如何使用这些函数。

在之前的文章《PHP数组学习之更改键/值的大写或小写》中,我们介绍了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()函数可以计算两个数组的交集,不懂可以阅读《PHP数组学习之如何比较两个数组求交集》)。

$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视频教程

最后给大家推荐一个PHP数组的免费视频教程:PHP函数之array数组函数视频讲解,快来学习吧!

以上就是PHP数组学习之返回给定两数间的全部公因数和最大公因数的详细内容,更多请关注自由互联其它相关文章!

标签:全部