Teoría de NúmerosContenidos

Algoritmo de Euclides e identidad de Bézout

El algoritmo más antiguo de las matemáticas calcula el MCD en tiempo logarítmico. Su versión extendida produce la identidad de Bézout: , que abre las puertas a las ecuaciones diofánticas lineales y a la aritmética modular.

DificultadRegional
Etiquetasmcdeuclidesbezoutdiofanticasinverso-modular
Requisitosdivisibilidad-basica
AutorAdrián García Bouzas
Actualizado2026-06-03

El algoritmo de Euclides tiene más de 23002300 años y sigue siendo uno de los algoritmos más eficientes y más usados de las matemáticas. Dado en el Libro VII de los Elementos, calcula el máximo común divisor de dos enteros en tiempo proporcional al logaritmo de la entrada — una velocidad que los algoritmos modernos no han podido mejorar significativamente.

Pero más importante que el algoritmo mismo es lo que se sigue de él: la identidad de Bézout, que dice que el MCD de dos números aa y bb es una combinación lineal entera de aa y bb. Esta identidad es la piedra angular de la aritmética modular, las ecuaciones diofánticas, los inversos modulares, y — en última instancia — el Teorema Fundamental de la Aritmética.

Teorema

(Algoritmo de Euclides) Sean a,ba, b enteros positivos. Apliquemos el algoritmo de divisiones sucesivas:

a=bq1+r1,0r1<b,a = b q_1 + r_1, \quad 0 \leq r_1 < b, b=r1q2+r2,0r2<r1,b = r_1 q_2 + r_2, \quad 0 \leq r_2 < r_1, r1=r2q3+r3,0r3<r2,r_1 = r_2 q_3 + r_3, \quad 0 \leq r_3 < r_2, \vdots rk2=rk1qk+rk,0rk<rk1,r_{k-2} = r_{k-1} q_k + r_k, \quad 0 \leq r_k < r_{k-1}, rk1=rkqk+1+0.r_{k-1} = r_k q_{k+1} + 0.

La sucesión de restos b>r1>r2>0b > r_1 > r_2 > \cdots \geq 0 es estrictamente decreciente, así que el algoritmo termina. El último resto no nulo es gcd(a,b)=rk\gcd(a, b) = r_k.

Demostración

Probaremos que en cada paso, el MCD se conserva:

gcd(a,b)=gcd(b,r1)=gcd(r1,r2)==gcd(rk1,rk)=gcd(rk,0)=rk.\gcd(a, b) = \gcd(b, r_1) = \gcd(r_1, r_2) = \cdots = \gcd(r_{k-1}, r_k) = \gcd(r_k, 0) = r_k.

Lema. Si a=bq+ra = bq + r, entonces gcd(a,b)=gcd(b,r)\gcd(a, b) = \gcd(b, r).

Demostración del lema. Sea d=gcd(a,b)d = \gcd(a, b). Por la linealidad de la divisibilidad: dad \mid a y dbd \mid b implica d(abq)=rd \mid (a - bq) = r, luego dd es divisor común de bb y rr. Recíprocamente, cualquier divisor común de bb y rr divide bq+r=abq + r = a, así que también es divisor común de aa y bb. Por tanto el conjunto de divisores comunes de (a,b)(a, b) y de (b,r)(b, r) es el mismo, y sus máximos coinciden. \blacksquare

Terminación. La sucesión b>r1>r2>0b > r_1 > r_2 > \cdots \geq 0 es estrictamente decreciente (cada resto es positivo por hipótesis hasta el último) y acotada inferiormente por 00. Por el principio del buen orden, termina. \blacksquare

Complejidad. Se puede demostrar (lema de Gabriel Lamé, 1844) que el número de pasos es a lo sumo 55 veces el número de dígitos decimales de min(a,b)\min(a, b), es decir O(logmin(a,b))O(\log \min(a, b)) divisiones.

Ejemplo

Calcular gcd(252,198)\gcd(252, 198).

PasoDivisiónCocienteResto
1252=1198+54252 = 1 \cdot 198 + 54115454
2198=354+36198 = 3 \cdot 54 + 36333636
354=136+1854 = 1 \cdot 36 + 18111818
436=218+036 = 2 \cdot 18 + 02200

El último resto no nulo es 1818. Luego gcd(252,198)=18\gcd(252, 198) = 18.

Teorema

(Identidad de Bézout) Para todo par de enteros a,ba, b no ambos nulos, existen enteros x,yx, y tales que

gcd(a,b)=ax+by.\gcd(a, b) = ax + by.

Más precisamente, el conjunto {ax+by:x,yZ}\{ax + by : x, y \in \mathbb Z\} es exactamente el conjunto de múltiplos de gcd(a,b)\gcd(a, b).

Demostración

Sea S={ax+by:x,yZ}Z>0S = \{ax + by : x, y \in \mathbb Z\} \cap \mathbb Z_{>0} el conjunto de combinaciones lineales positivas. Como a,bS|a|, |b| \in S (tomando x=sign(a),y=0x = \text{sign}(a), y = 0 o similar), SS es no vacío. Por el buen orden, SS tiene un mínimo, digamos d=ax0+by0d = ax_0 + by_0.

Afirmamos d=gcd(a,b)d = \gcd(a, b).

dad \mid a: por la división euclidiana, a=dq+ra = dq + r con 0r<d0 \leq r < d. Entonces r=adq=a(1qx0)+b(qy0){ax+by}Z0r = a - dq = a(1 - qx_0) + b(-qy_0) \in \{ax+by\} \cap \mathbb Z_{\geq 0}. Si r>0r > 0, entonces rSr \in S y r<dr < d, contradiciendo la minimalidad de dd. Luego r=0r = 0 y dad \mid a.

dbd \mid b: análogo.

Es el máximo divisor común: cualquier divisor común de aa y bb divide ax0+by0=dax_0 + by_0 = d. Por la propiedad de acotación, ese divisor es d\leq d. Luego dd es efectivamente el máximo. \blacksquare

El algoritmo extendido de Euclides

El algoritmo extendido calcula no solo gcd(a,b)\gcd(a, b) sino también los coeficientes de Bézout x,yx, y. Se hace recorriendo las igualdades del algoritmo de abajo hacia arriba.

Ejemplo

Calcular x,yx, y tales que 18=252x+198y18 = 252x + 198y (continuando el ejemplo anterior).

Recorremos hacia atrás:

18=54136(paso 3)18 = 54 - 1 \cdot 36 \qquad \text{(paso 3)}

=541(198354)=4541198(paso 2)= 54 - 1 \cdot (198 - 3 \cdot 54) = 4 \cdot 54 - 1 \cdot 198 \qquad \text{(paso 2)}

=4(2521198)1198=42525198.(paso 1)= 4 \cdot (252 - 1 \cdot 198) - 1 \cdot 198 = 4 \cdot 252 - 5 \cdot 198. \qquad \text{(paso 1)}

Luego x=4x = 4, y=5y = -5, y 25241985=1008990=18252 \cdot 4 - 198 \cdot 5 = 1008 - 990 = 18. ✓

Observación. Los coeficientes de Bézout no son únicos: si (x0,y0)(x_0, y_0) es una solución, entonces (x0+kb/d,  y0ka/d)(x_0 + kb/d, \; y_0 - ka/d) también lo es para cualquier kZk \in \mathbb Z, donde d=gcd(a,b)d = \gcd(a,b).

Corolario

Sea d=gcd(a,b)d = \gcd(a, b). Entonces:

(i) dd es la menor combinación lineal positiva de aa y bb.

(ii) Un entero mm es combinación lineal entera de aa y bb si y solo si dmd \mid m.

(iii) gcd(a/d,b/d)=1\gcd(a/d, b/d) = 1 (es decir, a/da/d y b/db/d son coprimos).

Demostración de (ii). ()(\Leftarrow): si m=kdm = kd, entonces m=k(ax0+by0)=a(kx0)+b(ky0)m = k \cdot (ax_0 + by_0) = a(kx_0) + b(ky_0). ()(\Rightarrow): si m=ax+bym = ax + by, como dad \mid a y dbd \mid b, tenemos dmd \mid m. \blacksquare

Lema

(Lema de Euclides) Sea pp un número primo. Si pabp \mid ab, entonces pap \mid a o pbp \mid b.

Más generalmente: si gcd(a,n)=1\gcd(a, n) = 1 y nabn \mid ab, entonces nbn \mid b.

Demostración

Supongamos gcd(a,n)=1\gcd(a, n) = 1 (tomamos n=pn = p para el caso del primo). Por Bézout, existen u,vu, v con au+nv=1au + nv = 1. Multiplicando por bb:

aub+nvb=b.aub + nvb = b.

Como nabn \mid ab, se tiene naubn \mid aub. Y trivialmente nnvbn \mid nvb. Por linealidad, naub+nvb=bn \mid aub + nvb = b. \blacksquare

Este lema es la clave para la unicidad en el Teorema Fundamental de la Aritmética.

Teorema

(Ecuaciones diofánticas lineales) Sean a,b,ca, b, c enteros con a,b0a, b \neq 0 y d=gcd(a,b)d = \gcd(a, b). La ecuación

ax+by=cax + by = c

tiene solución entera si y solo si dcd \mid c. En ese caso, fijada una solución particular (x0,y0)(x_0, y_0), todas las soluciones son

x=x0+bdt,y=y0adt,tZ.x = x_0 + \frac{b}{d} t, \qquad y = y_0 - \frac{a}{d} t, \qquad t \in \mathbb Z.

Demostración

Necesidad. Si ax+by=cax + by = c, como dad \mid a y dbd \mid b, entonces dcd \mid c.

Suficiencia. Si dcd \mid c, sea c=dkc = dk. Por Bézout, d=au+bvd = au + bv para algunos u,vu, v. Entonces (x0,y0)=(uk,vk)(x_0, y_0) = (uk, vk) es una solución particular: a(uk)+b(vk)=k(au+bv)=kd=ca(uk) + b(vk) = k(au + bv) = kd = c.

Familia de soluciones. Si (x,y)(x, y) y (x0,y0)(x_0, y_0) son soluciones, restando:

a(xx0)+b(yy0)=0    ad(xx0)=bd(yy0).a(x - x_0) + b(y - y_0) = 0 \implies \frac{a}{d}(x - x_0) = -\frac{b}{d}(y - y_0).

Como gcd(a/d,b/d)=1\gcd(a/d, b/d) = 1, el Lema de Euclides aplicado a adbd(y0y)\frac{a}{d} \mid \frac{b}{d}(y_0 - y) da ad(y0y)\frac{a}{d} \mid (y_0 - y). Análogamente bd(xx0)\frac{b}{d} \mid (x - x_0). Escribiendo xx0=bdtx - x_0 = \frac{b}{d} t, se obtiene yy0=adty - y_0 = -\frac{a}{d} t. \blacksquare

Ejemplo

Ejemplo 1. Encontrar todas las soluciones enteras de 7x+11y=1007x + 11y = 100.

gcd(7,11)=1100\gcd(7, 11) = 1 \mid 100. Buscamos una solución particular: por ensayo (o el algoritmo extendido), 7(3)+112=21+22=17 \cdot (-3) + 11 \cdot 2 = -21 + 22 = 1, así que 7(300)+11200=1007 \cdot (-300) + 11 \cdot 200 = 100. Solución particular: x0=300x_0 = -300, y0=200y_0 = 200.

Solución general: x=300+11tx = -300 + 11t, y=2007ty = 200 - 7t, tZt \in \mathbb Z.

Para soluciones positivas: x>0    t>300/1127.3x > 0 \iff t > 300/11 \approx 27.3, así t28t \geq 28. y>0    t<200/728.6y > 0 \iff t < 200/7 \approx 28.6, así t28t \leq 28.

El único valor es t=28t = 28: x=300+308=8x = -300 + 308 = 8, y=200196=4y = 200 - 196 = 4.

Verificación: 78+114=56+44=1007 \cdot 8 + 11 \cdot 4 = 56 + 44 = 100. ✓


Ejemplo 2. Un comerciante vende artículos a 1717 u.m. y compra insumos de 1111 u.m. cada uno. ¿Cuántas unidades debe vender/comprar para que su caja quede en exactamente 100100 u.m.?

La ecuación es 17x11y=10017x - 11y = 100 (vende xx artículos, compra yy insumos). gcd(17,11)=1\gcd(17, 11) = 1. Buscamos solución particular: 172113=3433=117 \cdot 2 - 11 \cdot 3 = 34 - 33 = 1, así 1720011300=10017 \cdot 200 - 11 \cdot 300 = 100. Solución general: x=20011tx = 200 - 11t, y=30017ty = 300 - 17t. Para x,y0x, y \geq 0: t200/1118.2t \leq 200/11 \approx 18.2 y t300/1717.6t \leq 300/17 \approx 17.6, así t17t \leq 17. El óptimo (mínimo de artículos) es t=17t = 17: x=200187=13x = 200 - 187 = 13, y=300289=11y = 300 - 289 = 11.


Ejemplo 3. Calcular 51(mod13)5^{-1} \pmod{13} usando Euclides extendido.

Buscamos 5x1(mod13)5x \equiv 1 \pmod{13}, es decir 5x13y=15x - 13y = 1 (con yy entero).

gcd(13,5)\gcd(13, 5): 13=25+313 = 2 \cdot 5 + 3, 5=13+25 = 1 \cdot 3 + 2, 3=12+13 = 1 \cdot 2 + 1, 2=212 = 2 \cdot 1.

Bézout hacia atrás: 1=312=3(53)=235=2(1325)5=213551 = 3 - 1 \cdot 2 = 3 - (5 - 3) = 2 \cdot 3 - 5 = 2(13 - 2 \cdot 5) - 5 = 2 \cdot 13 - 5 \cdot 5.

Así 5(5)13(2)=25+26=15 \cdot (-5) - 13 \cdot (-2) = -25 + 26 = 1, es decir 5x=1+1325x = 1 + 13 \cdot 2, dando x=58(mod13)x = -5 \equiv 8 \pmod{13}.

Verificación: 58=40=313+11(mod13)5 \cdot 8 = 40 = 3 \cdot 13 + 1 \equiv 1 \pmod{13}. ✓ El inverso es 518(mod13)5^{-1} \equiv 8 \pmod{13}.

Aplicaciones

Fracciones irreducibles. Una fracción a/ba/b está en forma irreducible si y solo si gcd(a,b)=1\gcd(a, b) = 1. Para reducir a/ba/b: dividir numerador y denominador por d=gcd(a,b)d = \gcd(a, b).

Inverso modular. Si gcd(a,n)=1\gcd(a, n) = 1, el inverso a1(modn)a^{-1} \pmod n se calcula con el algoritmo extendido de Euclides, que produce xx con ax1(modn)ax \equiv 1 \pmod n en O(logn)O(\log n) operaciones.

Solubilidad de sistemas. La ecuación axb(modn)ax \equiv b \pmod n es equivalente a axny=bax - ny = b, solucionable iff gcd(a,n)b\gcd(a, n) \mid b.

Coprimalidad y estructura multiplicativa. Si gcd(a,n)=1\gcd(a, n) = 1, entonces la función xax(modn)x \mapsto ax \pmod n es una biyección sobre {0,,n1}\{0, \ldots, n-1\}. Este es el corazón de la demostración del Pequeño Teorema de Fermat por el método de los productos.

Observación

Por qué Bézout es tan poderoso. La identidad gcd(a,b)=ax+by\gcd(a, b) = ax + by es una afirmación sobre el ideal {ax+by:x,yZ}\{ax + by : x, y \in \mathbb Z\}: dice que es el ideal dZ={dk:kZ}d\mathbb Z = \{dk : k \in \mathbb Z\}. En términos modernos, Z\mathbb Z es un dominio de ideal principal: todo ideal es de la forma dZd\mathbb Z, y dd es el generador. Esta propiedad es la razón profunda por la que el TFA vale en Z\mathbb Z y la puerta de entrada a la teoría algebraica de números.

Complejidad y el número de Fibonacci. El par de enteros que requiere más pasos en el algoritmo de Euclides, para bb fijo, es un par de Fibonacci consecutivos: gcd(Fn+1,Fn)=F1=1\gcd(F_{n+1}, F_n) = F_1 = 1 requiere exactamente nn pasos. Esto muestra que el número de pasos es Θ(logφb)\Theta(\log_\varphi b) donde φ\varphi es la razón áurea.