Vous êtes sur la page 1sur 5

Algoritmo de Euclides C alculo del mcd(a, b) (supondremos b > 0): P1 P2 P3 P4 P5 Leer a y b r = resto de dividir a entre b si r = 0 entonces mcd(a, b) = b si no,

entonces a = b, b = r ir al Paso 2 FIN

Se termina siempre? En cada divisi on obtenemos un resto r N {0} que es estrictamente menor que el anterior existir a un momento en el que r = 0. Complejidad: O(log(n)), siendo n = max(a, b).

Algoritmo del m nimo resto


b Podemos acelerar la convergencia cuando en alguna divisi on r > 2 :

P1 P2 P3 P4 P5 P6

Leer a y b r = resto de dividir a entre b si r = 0 entonces mcd(a, b) = b si no, entonces a = b, b = r ir al Paso 2 FIN si r > b/2 entonces a = b, b = b r

Ejemplos mcd(21, 13) =? Euclides: a b r 21 13 8 13 8 5 8 5 3 5 3 2 3 2 1 2 1 0 M nimo Resto: a b r r 21 13 8 5 13 5 3 2 5 2 1 2 1 0

Algoritmo Extendido de Euclides P1 P2 P3 P4 P5 Leer a y b u = 1, v = 1, u = 0, v = 0, c = a, d = b q = cociente de dividir c entre d, r = resto de dividir c entre d si r = 0 entonces d = au + bv si no, entonces c = d, d = r t = u , u = u, u = t qu, t = v , v = v , v = t qv ir al Paso 3 FIN

P6

Ejemplo Coecientes de la identidad de Bezout para a = 1769 y b = 551 u 1 0 1 -4 u v v c d q r 0 0 1 1769 551 3 116 1 1 -3 551 116 4 87 -4 -3 13 116 87 1 29 5 13 -16 87 29 3 0 mcd(1769, 551) = 29 29 = 5 1769 16 551

Vous aimerez peut-être aussi