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函数,可以求出给定的两个数的最大公因数。