Exercise 1.5

Find m and n for the pairs a and b given in Ex 1.3

Answers

Proof. From exercises 1.3, 1.4, we know that the sequences ( r i ) , ( m i ) , ( n i ) are given by

r 0 = a , r 1 = b m 0 = 1 , m 1 = 0 n 0 = 0 , n 1 = 1

and for all i < k ,

r i + 2 = r i q i + 1 r i + 1 m i + 2 = m i q i + 1 m i + 1 n i + 2 = n i q i + 1 n i + 1

and for all i

r i = m i a + n i b .

This gives the direct instructions in Python :

>>> a,b = 187, 221
>>> r0,r1,m0,m1,n0,n1 = a,b,1,0,0,1
>>> q = r0//r1;
>>> q = r0//r1; r0,r1,m0,m1,n0,n1 = r1, r0 -q*r1,m1, m0 -q*m1, n1, n0 - q*n1
>>> print(r0,r1,m0,m1,n0,n1)
221 187 0 1 1 0
>>> q = r0//r1; r0,r1,m0,m1,n0,n1 = r1, r0 -q*r1,m1, m0 -q*m1, n1, n0 - q*n1
>>> print(r0,r1,m0,m1,n0,n1)
187 34 1 -1 0 1
>>> q = r0//r1; r0,r1,m0,m1,n0,n1 = r1, r0 -q*r1,m1, m0 -q*m1, n1, n0 - q*n1
>>> print(r0,r1,m0,m1,n0,n1)
34 17 -1 6 1 -5
>>> q = r0//r1; r0,r1,m0,m1,n0,n1 = r1, r0 -q*r1,m1, m0 -q*m1, n1, n0 - q*n1
>>> print(r0,r1,m0,m1,n0,n1)
17 0 6 -13 -5 11

So

17 = 187 221 = 6 × 187 5 × 221 .

Similarly

17 = 6188 4709 = 121 × 6188 159 × 4709 .

1 = 314 159 = 40 × 314 + 79 × 159 .

We obtain the same results with the following Python script :

def bezout(a,b):
    """input  : entiers a,b
        output : tuple (x,y,d),
        (x,y) solution de ax+by = d, d = pgcd(a,b)
    """
    (r0,r1)=(a,b)
    (u0,v0) = (1,0)
    (u1,v1) = (0,1)
    while r1 != 0:
        q = r0 // r1
        (r2,u2,v2) = (r0 - q*r1,u0 - q*u1,v0 - q*v1)
        (r0,r1) = (r1,r2)
        (u0,u1) = (u1,u2)
        (v0,v1) = (v1,v2)
    return (u0,v0,r0)

User profile picture
2022-07-19 00:00
Comments