函数名:gmp_gcdext()
函数描述:gmp_gcdext() 函数用于计算两个整数的最大公约数,并返回一个数组,其中包含最大公约数、以及对应的系数。
用法:gmp_gcdext($a, $b)
参数:
- $a:一个 GMP 对象或一个字符串,表示第一个整数。
- $b:一个 GMP 对象或一个字符串,表示第二个整数。
返回值:一个包含三个元素的数组,包括最大公约数 $g,以及两个整数 $a 和 $b 的系数 $s 和 $t,满足 $g = $a * $s + $b * $t。
示例代码:
$a = gmp_init(24);
$b = gmp_init(36);
$result = gmp_gcdext($a, $b);
$g = $result[0]; // 最大公约数
$s = $result[1]; // $a 的系数
$t = $result[2]; // $b 的系数
echo "最大公约数: " . gmp_strval($g) . "\n";
echo "系数 a: " . gmp_strval($s) . "\n";
echo "系数 b: " . gmp_strval($t) . "\n";
// 输出结果:
// 最大公约数: 12
// 系数 a: -1
// 系数 b: 1
注意事项:
- 传入的参数可以是 GMP 对象或字符串,如果是字符串,则会自动转换为 GMP 对象进行计算。
- 如果两个整数中有一个为 0,则返回的结果数组中,最大公约数为另一个不为 0 的整数,系数 $s 和 $t 为 0。
- 如果两个整数中有一个为负数,则返回的结果数组中,最大公约数为正数,系数 $s 和 $t 的符号会根据参数的符号而定。
- 当输入参数为非整数时,将会返回 false。