extended.euclidean.algorithm (1.14)

104 days ago by grenoble.sciences

# To find the pairs of Bézout numbers for the integers (a,b), # we apply the extended Euclidean algorithm: # 1 x a + 0 x b = a # 0 x a + 1 x b = b # (u-q*x) * a + (v-q*y) * b = d 
       
def xgcd(a,b): u = 1; v = 0 x = 0; y = 1 print u, '*', a, '+', v, '*', b, '=', a mema = a memb = b while b: q = a//b x, u = u - q*x, x y,v = v - q*y,y a, b = b, a % b print u, '*', mema, '+', v, '*', memb, '=', a return a , u, v 
       
xgcd(50,17) 
       
1 * 50 + 0 * 17 = 50
0 * 50 + 1 * 17 = 17
1 * 50 + -2 * 17 = 16
-1 * 50 + 3 * 17 = 1
(1, -1, 3)
1 * 50 + 0 * 17 = 50
0 * 50 + 1 * 17 = 17
1 * 50 + -2 * 17 = 16
-1 * 50 + 3 * 17 = 1
(1, -1, 3)