php:写2个函数,分别可以求得两个正整数的最大公约数和最小公倍数
时间: 2024-10-13 16:03:34 浏览: 14
Java求两个正整数的最大公约数和最小公倍数
5星 · 资源好评率100%
在PHP中,你可以通过欧几里得算法(Euclidean algorithm)来计算两个正整数的最大公约数(GCD),然后利用最大公约数来找到最小公倍数(LCM)。这里提供两个函数的示例:
```php
// 函数用于计算最大公约数 (GCD)
function gcd($a, $b) {
if ($b == 0) {
return $a;
} else {
return gcd($b, $a % $b);
}
}
// 函数用于计算最小公倍数 (LCM)
function lcm($a, $b) {
// 使用公式 LCM(a, b) = |a * b| / GCD(a, b)
return abs($a * $b) / gcd($a, $b);
}
// 示例用法
$a = 48;
$b = 18;
echo "最大公约数 (GCD): ", gcd($a, $b), "\n";
echo "最小公倍数 (LCM): ", lcm($a, $b), "\n";
```
在这个例子中,`gcd()` 函数递归地计算较小数除以较大数的余数,直到余数为零,此时较小的数就是最大公约数。而 `lcm()` 函数则直接利用了 GCD 的性质来计算最小公倍数。
阅读全文