Алгоритм Евклида.

1 Шаг. Делим а на (b¹0), если а /b, то (a, b) = b по лемме 1, если а = bq0 + r1, то (a, b)=(b, r1)

2Шаг. Делим b на r1 если (b /r1) => (b, r1) = r1, если b = r1q1+r2, то (b, r1) = (r1, r2).

3 Шаг. Делим r1 на r2 и т. д.

Поскольку остатки, получаемые в процессе деления, убывают и являются натуральными числами, то на каком-то шаге получим остаток, равный нулю, т.е. rn-1 = rnqn и тогда (rn-1, rn) = rn.

Задача 2. Доказать, что последний неравный нулю остаток в алгоритме Евклида является наибольшим общим делителем чисел (а) и (b).

Решение: Применим к числам (а) и (b) алгоритм Евклида:

a = bqo+r1 0£r1<b

b = r1q1 + r2 0£ r2 <r1

. . . . . . . . . . . . . . . . . . . . .

rn-2=rn-1•qn-1 +rn 0 rn<rn-1

rn-1 =rnqn + 0

Из первого равенства по лемме 2 будем иметь:

(a, b) = (b, r1)

Из второго равенства алгоритма Евклида тоже по лемме 2 будем иметь (b, r1)= (r1 г2) и т. д.

Из последнего равенства (rn-1 , rn) = rn по лемме 1. Т.е. получили цепочку равенств (а, b) = (b, r1) = (r1, r2) = (r2, r3) = …..

=(rn-2, rn-1) = (rn-1, rn) = rn

Итак, (а, b)=rn.

Пример 2. Найти d = (3220,1550) с помощью алгоритма Евклида

Решение:

 

Итак, (3220, 1550) = 10 = r2

Задача 3. Доказать, что если d=(а,b), то $х, у Z :

d = ах + by.

Решение:

Применим к числам а иb алгоритм Евклида:

а = bq0 + r1

b = r1 q1 + r2

ri = r2q2 + r3

……………………

rn-3 = rn-2qn-2 + rn-1

rn-2 = rn-1qn + d, (d = rn)

Тогда, последовательно выражая, из последнего равенства, d = rn-2 - rn-1 qn (*) из предпоследнего rn-1 = rn-3 – rn-2qn-2 и т.д.

Из первого r1 = а-bqo и последовательно подставляя их в равенство (*) получаем: d = ах + by.