Recurrencias y aritmética · Definición

Algoritmo de Euclides

matemáticas discretasteoría de númerosalgoritmos

Antes de empezar necesitas conocer

Evita factorizar: da el máximo común divisor con unas pocas divisiones, incluso para números enormes.

Definición

El algoritmo de Euclides calcula el máximo común divisor de dos enteros \(a\) y \(b\) dividiendo una y otra vez, y reemplazando cada par por el divisor y el residuo, hasta que el residuo sea 0.

\[\gcd(a,b)=\gcd(b,\,a\bmod b)\]

Factorizar un número grande es difícil, pero dividir es fácil. El algoritmo de Euclides aprovecha que \(\gcd(a,b)=\gcd(b,r)\) cuando \(a=qb+r\): los divisores comunes de \(a\) y \(b\) son exactamente los de \(b\) y \(r\). Se repite hasta que el residuo es 0, y el último residuo no nulo es el resultado. Para \(a=252\) y \(b=105\): \(252=2\cdot105+42\), \(105=2\cdot42+21\), \(42=2\cdot21+0\), de modo que \(\gcd(252,105)=21\).

Termina siempre porque los residuos son enteros no negativos que decrecen estrictamente. Es además muy rápido: cada dos pasos el residuo se reduce al menos a la mitad, por lo que el número de divisiones es proporcional a la cantidad de cifras. El peor caso son dos números de Fibonacci consecutivos: \(\gcd(89,55)\) necesita 9 divisiones, todas con cociente 1. Si \(a<b\), el primer paso solo intercambia los números.

Retrocediendo por las divisiones se obtiene la versión extendida: números enteros \(x,y\) con \(ax+by=\gcd(a,b)\), la identidad de Bézout. Con ella se resuelven ecuaciones diophantinas \(ax+by=c\) y se calculan inversos módulo \(m\), que son la base de la criptografía RSA. Un error frecuente es detenerse en el residuo 0 en lugar de tomar el residuo anterior: el resultado es el último residuo no nulo, es decir, el último divisor.

Para pensar

Calcula \(\gcd(48,18)\) con el algoritmo y anota los residuos.

\(48=2\cdot18+12\), \(18=1\cdot12+6\), \(12=2\cdot6+0\). El máximo común divisor es 6.

¿Por qué restar \(qb\) a \(a\) no cambia los divisores comunes?

Si \(d\mid a\) y \(d\mid b\), entonces \(d\mid a-qb\); e inversamente, si \(d\mid b\) y \(d\mid a-qb\), entonces \(d\mid (a-qb)+qb=a\).

Ejercicios 10

Referencias

  • Kenneth H. Rosen, Discrete Mathematics and Its Applications, 8th edition, McGraw-Hill, 2019. §4.3
  • Susanna S. Epp, Discrete Mathematics with Applications, 5th edition, Cengage, 2019. §4.8
  • Ralph P. Grimaldi, Discrete and Combinatorial Mathematics: An Applied Introduction, 5th edition, Pearson, 2003. §4.4