PHP数组学习之返回给定两数间的全部公因数和最大公因数

1. 什么是公因数和最大公因数

在讲解如何找给定两数间的全部公因数和最大公因数之前,我们先来了解一下什么是公因数和最大公因数。

公因数:若有几个数公有的因数,则这几个数称为这个公因数的倍数,而这个公因数称为这几个数的公因数。

最大公因数:若一个数除以最大公因数的结果均为整数,则这个最大公因数是这些数最大的公因数。

例如:12和18的公因数有1、2、3、6,其中6是它们的最大公因数。

2. PHP中求公因数和最大公因数

在PHP中,求给定两个数的公因数和最大公因数可以使用数组和循环来实现。

2.1 返回给定两数间的全部公因数

我们可以使用一个for循环来判断两个数中小的那个数的所有因数是否为大的那个数的因数,如果是,则将该因数存入一个数组中。

function common_divisor($num1, $num2) {

$common_divisor = array();

$min = $num1 < $num2 ? $num1 : $num2;

for($i=1; $i<=$min; $i++) {

if($num1 % $i == 0 && $num2 % $i == 0) {

$common_divisor[] = $i;

}

}

return $common_divisor;

}

函数的使用如下:

$num1 = 12;

$num2 = 18;

$common_divisor = common_divisor($num1, $num2);

echo '两个数的全部公因数为:' . implode(',', $common_divisor); // 输出:两个数的全部公因数为:1,2,3,6

通过调用common_divisor函数,可以求出给定的两个数的全部公因数。

2.2 返回给定两数间的最大公因数

我们可以使用一个for循环来判断两个数中小的那个数的所有因数是否为大的那个数的因数,如果是,则将该因数存入一个数组中,最后返回该数组中的最后一个元素,即为两个数的最大公因数。

function greatest_common_divisor($num1, $num2) {

$common_divisor = array();

$min = $num1 < $num2 ? $num1 : $num2;

for($i=1; $i<=$min; $i++) {

if($num1 % $i == 0 && $num2 % $i == 0) {

$common_divisor[] = $i;

}

}

return end($common_divisor);

}

函数的使用如下:

$num1 = 12;

$num2 = 18;

$greatest_common_divisor = greatest_common_divisor($num1, $num2);

echo '两个数的最大公因数为:' . $greatest_common_divisor; // 输出:两个数的最大公因数为:6

通过调用greatest_common_divisor函数,可以求出给定的两个数的最大公因数。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签