Algoritmo de Euclides
Calculo del mcd(a, b) (supondremos b > 0):
P1 Leer a y b
P2 r = resto de dividir a entre b
P3 si r = 0 entonces mcd(a, b) = b FIN
P4 si no, entonces a = b, b = r
P5 ir al Paso 2
Se termina siempre?En cada division obtenemos un resto r N{0} que es estrictamentemenor que el anterior existira un momento en el que r = 0.
Complejidad: O(log(n)), siendo n = max(a, b).
Algoritmo del mnimo resto
Podemos acelerar la convergencia cuando en alguna division r > b2 :
P1 Leer a y b
P2 r = resto de dividir a entre b
P3 si r = 0 entonces mcd(a, b) = b FIN
P4 si r > b/2 entonces a = b, b = b rP5 si no, entonces a = b, b = r
P6 ir al Paso 2
Ejemplos
mcd(21, 13) =?
Euclides:
a b r
21 13 813 8 58 5 35 3 23 2 12 1 0
Mnimo Resto:
a b r r
21 13 8 513 5 3 25 2 12 1 0
Algoritmo Extendido de Euclides
P1 Leer a y b
P2 u = 1, v = 1, u = 0, v = 0, c = a, d = b
P3 q = cociente de dividir c entre d,r = resto de dividir c entre d
P4 si r = 0 entonces d = au+ bv FIN
P5 si no, entonces c = d, d = rt = u, u = u, u = t qu,t = v, v = v, v = t qv
P6 ir al Paso 3
Ejemplo
Coeficientes de la identidad de Bezout para a = 1769 y b = 551
u u v v c d q r
1 0 0 1 1769 551 3 1160 1 1 -3 551 116 4 871 -4 -3 13 116 87 1 29-4 555 13 -16-16-16 87 292929 3 0
mcd(1769, 551) = 29
29 = 5 1769 16 551
Top Related