Python代码:
def gcd(a, b):
if b > a:
return gcd(b, a)
if b == 0:
return a
return gcd(b, a % b)
原理:
定义:ax + by = gcd(a, b)
Python代码:
def ex_gcd(a, b, xa=1, ya=0, xb=0, yb=1):
if b > a:
return ex_gcd(a, b)
if b == 0:
return a, xa, ya
k = a // b
x = xa - k*xb
y = ya - k*yb
return ex_gcd(b, a % b, xb, yb, x, y)
原理: