def ExtendedGcd(a, b):
"""
Extended Euclidean algorithm.
Computes, in addition to the greatest common divisor of integers a and b,
also the coefficients of Bezout's identity, which are integers x and y such
that a x + b y = gcd(a, b).
Args:
a: An integer.
b: An integer.
Returns:
A tuple (g, x, y) satisfying a x + b y = g.
"""
if a == 0:
return (b, 0, 1)
else:
g, y, x = ExtendedGcd(b % a, a)
return (g, x - (b // a) * y, y)
沒有留言:
張貼留言