Cap´ıtulo 2
Divisibilidad en Z
2.1.
Divisi´
on eucl´ıdea en Z. M´
aximo com´
un
divi-sor
Definici´on 2.1 Dados dos n´umeros enteros a y b, con b 6= 0, se dice que b divide a a o que a es m´ultiplo de b o que b es divisor de a, si existe otro entero q tal que a = bq. Se escribe
b | a
Naturalmente, todo n´umero entero a distinto de 1 y −1 tiene, al menos, cuatro divisores, a saber, ±1 y ±a. A estos divisores se les conoce con el nombre de divisores (o factores) triviales de a. Otras propiedades, de todos conocidas, de la divisibilidad se recogen en la siguiente Proposici´on:
Proposici´on 2.2 En las propiedades siguientes todos los n´umeros ser´an enteros y |a| denotar´a el valor absoluto de a.
1) d|a ⇐⇒ −d|a ⇐⇒ d| − a,
2) d|a, a 6= 0 y d ≥ 0 =⇒ 1 ≤ d ≤ |a|, 3) d|1 =⇒ d = 1 o d = −1,
4) a|b y b|a =⇒ b = a o b = −a, 5) a|b y b|c =⇒ a|c,
6) a|b y a|c =⇒ a|b + c, 7) a|b y a|c =⇒ a|bc, 8) a|b y c ∈ Z =⇒ ac|bc,
9) a|b y c|d =⇒ ac|bd, 10) ac|bc y c 6= 0 =⇒ a|b.
Nota. La prueba de estas propiedades requiere el uso de la Definici´on 2.1 y de los axiomas que definen los n´umeros enteros. Como la prueba de dichas propiedades es sencilla, la dejaremos como ejercicio.
De entre todos los n´umeros enteros, adquieren una singular importancia los cono-cidos como n´umeros primos que, desde siempre, han fascinado a los matem´aticos y al resto de los mortales. Por poner un ejemplo, en la pel´ıcula Contact dirigida por Robert Zemeckis en 1997 y cuyo gui´on se basa en una novela de Carl Sagan, el primer mensaje que recibe de los extraterrestres la Dra. Arroway, interpretada por Jodie Foster, es una sucesi´on de n´umeros primos.
Definici´on 2.3 Un entero p > 1 se dice primo si sus ´unicos divisores positivos son los triviales, es decir, 1 y p.
Los primeros primos son:
2, 3, 5, 7, 11, 13, 17, 19, 23, ... N´otese que 1 no es primo.
Teorema 2.4 (Euclides, Libro IX de los Elementos, aprox. 300 a. C.) Todo n´umero entero mayor que 1 es producto de primos.
Demostraci´on.– Inducci´on en la talla.
En particular, todo entero no nulo es producto de uno de los n´umeros ±1 y de n´umeros primos. Veremos m´as adelante que esta expresi´on es, esencialmente, ´unica.
Teorema 2.5 (Euclides, Libro IX de los Elementos) Existen infinitos n´umeros primos.
La prueba de este resultado es sencilla y su inter´es radica en el hecho de que es una de las primeras demostraciones conocidas en las que se utiliz´o la reducci´on al absurdo.
Demostraci´on.– Supongamos que hay un n´umero finito, digamos n, de primos a los que denotaremos por p1, p2, . . . , pn. Consideremos el n´umero
2.1. DIVISI ´ON EUCL´IDEA EN Z. M ´AXIMO COM ´UN DIVISOR 27
N = p1p2· · · pn+ 1.
Por el teorema anterior, sabemos que N es producto de primos. Sea, pues, p un factor primo de N . Este primo ha de ser uno de los p1, p2, . . . , pn, digamos p = pi.
Entonces, pi divide a N − p1p2· · · pn que es igual a 1, con lo que hemos llegado a
una contradicci´on.
Una de las primeras tareas matem´aticas (y algor´ıtmicas) que realizamos en nuestra vida es la de aprender a dividir n´umeros naturales con resto. La forma en la que nos ense˜nan a dividir, basada en la b´usqueda de un natural que “quepa”(si no la mejor desde un punto de vista de eficiencia) es, en cierto modo, la misma idea en la que se basa la demostraci´on del siguiente teorema.
Teorema 2.6 (Divisi´on eucl´ıdea) Si a y b son dos enteros, b 6= 0, existe un ´unico par de enteros q y r tales que:
a = bq + r y 0 ≤ r < |b|.
A q y a r se les conoce, respectivamente, como cociente y resto de la divisi´on eucl´ıdea de a por b.
Demostraci´on.– Empecemos por demostrar la existencia de cociente y resto.
Supongamos, primero, que b > 0 y sea S = {x ∈ Z : bx ≤ a}. Este conjunto S es no vac´ıo (−|a| pertenece a S) y est´a acotado superiormente (por ejemplo, por |a|). En consecuencia, tiene m´aximo. Llamaremos q a este m´aximo y r = a − bq. Por construcci´on, se tiene que a = bq + r. Veamos que r verifica lo exigido. En efecto,
r ≥ 0 (por pertenecer q a S)
r < |b| = b. Si r ≥ b, se tendr´ıa b(q +1) = bq +b ≤ bq +r = a y, en consecuencia q + 1 pertenecer´ıa a S contradiciendo el hecho de q es el m´aximo de S. Si b < 0, aplicamos el caso anterior a −b.
Para probar la unicidad supongamos que q1, r1 y q2, r2 verifican las condiciones del
teorema, es decir,
a = bq1 + r1 con 0 ≤ r1 < |b| y
a = bq2+ r2 con 0 ≤ r2 < |b|
y que r1 ≤ r2. Restando, se tiene b(q1−q2) = r2−r1. Por lo tanto, |b| divide a r2−r1,
pero tambi´en se tiene que 0 ≤ r2− r1 < |b|. Esto s´olo es posible si r2 − r1 = 0. Por
Definici´on 2.7 (M´aximo com´un divisor) Si d|a y d|b decimos que d es un divi-sor com´un (o factor com´un) de a y b; por ejemplo, 1 es un divisor com´un a cualquier par de enteros a y b. Si a y b no son los dos nulos, el Teorema 2.6 prueba que ninguno de sus divisores comunes puede ser mayor que max(|a|, |b|), por lo que podemos ase-gurar que de entre todos sus divisores comunes debe existir uno que sea el mayor de ellos. Este es el m´aximo com´un divisor de a y b que denotaremos por mcd(a, b); siendo el ´unico entero d que satisface
d|a y d|b (por ser d un divisor com´un),
Si c|a y c|b, c|d (pues d es el mayor de los divisores comunes de a y b). Sin embargo, el caso a = b = 0 debe ser excluido; cualquier entero divide a 0 y es, por tanto, un divisor com´un de a y b, por lo que, en este caso, no existe un m´aximo com´un divisor. Esta definici´on puede obviamente extenderse al m´aximo com´un divisor de cualquier conjunto finito de enteros (no todos nulos).
Nota. Dos n´umeros enteros a y b se dicen coprimos o primos entre s´ı si no poseen factores comunes no triviales, esto es, si mcd(a, b) = 1.
Al igual que hicimos con la divisibilidad, recogemos en la siguiente Proposici´on algunas propiedades b´asicas del m´aximo com´un divisor.
Proposici´on 2.8 En las propiedades siguientes todos los n´umeros son enteros y |a| denotar´a el valor absoluto de a.
1) mcd(a, b) = mcd(b, a),
2) mcd(a, b, c) = mcd(mcd(a, b), c) = mcd(a, mcd(b, c)), 3) mcd(a, 0) = mcd(a, a) = |a|,
4) mcd(a, b) = mcd(−a, b) = mcd(|a|, |b|), 5) mcd(ca, cb) = |c|mcd(a, b),
6) mcd(a, b) = mcd(a, b + ac), 7) mcd a mcd(a, b), a mcd(a, b) = 1,
Una de las primeras aplicaciones del m´aximo com´un divisor que suele realizarse en la escuela es la reducci´on del tama˜no de numerador y denominador en la aritm´etica con n´umeros racionales. Obviamente, esto requerir´a, sobre todo si se piensa en n´umeros
2.2. ALGORITMO DE EUCLIDES. TEOREMA DE LAM ´E 29 de gran tama˜no, de un algoritmo eficiente1 para su c´alculo. Afortunadamente (no
siempre es el caso para otros problemas) se dispone de un m´etodo que, sorprenden-temente, se hallaba ya en los Elementos de Euclides. Seg´un D. Knuth, the oldest nontrivial algorithm that has survived to the present day.
2.2.
Algoritmo de Euclides. Teorema de Lam´
e
Trataremos, en esta Secci´on, de construir un algoritmo eficiente para el c´alculo del m´aximo com´un divisor y estudiar algunas de sus propiedades. Naturalmente, la propia definici´on de m´aximo com´un divisor proporciona un algoritmo para calcular mcd(a, b): construir la lista de divisores de a y b y tomar el mayor de los comunes. Sin embargo, para grandes n´umeros, este algoritmo es, ciertamente, inaplicable. El algoritmo de Euclides que estudiaremos para el c´alculo del m´aximo com´un divisor se basa en la sencilla observaci´on siguiente:
d|a y d|b ⇐⇒ d|a y d|r,
siendo r el resto de la divisi´on de a por b. Esto quiere decir que los divisores comunes de a y b son los divisores comunes de a y r, por lo que mcd(a, b) = mcd(b, r). El algoritmo de Euclides explota la idea anterior para simplificar el c´alculo del m´aximo com´un divisor reduciendo el tama˜no de los enteros sin alterar su m´aximo com´un divisor. Eliminando casos triviales, podemos suponer que a > b > 0. Sean r0 = a, r1 = b. Dividiendo, se tendr´a que r0 = q1r1 + r2 con 0 ≤ r2 < r1 = b.
Si r2 = 0, entonces b|a, por lo que mcd(a, b) = b y hemos terminado. Si r2 6= 0,
dividimos r1 entre r2 y escribimos r2 = q2r2 + r3 con 0 ≤ r3 < r2 y repetimos
el proceso. Dado que la sucesi´on de restos es decreciente (r1 > r2 > r3 > ...), en
alg´un momento habremos de encontrar un resto rn+1 igual a 0. Los dos ´ultimos
pasos podemos escribirlos de la forma rn−2 = qn−1rn−1+ rn con 0 < rn < rn−1, y
rn−1 = qnrn+ rn+1 con rn+1= 0.
Teorema 2.9 En el proceso anterior, rn es el m´aximo com´un divisor de a y b.
Adem´as, el m´aximo com´un divisor es ´unico.
1En el contexto inform´atico, eficiente quiere decir que, una vez convenientemente programado,
pueda ser ejecutado por un ordenador en un tiempo y utilizaci´on de recursos de memoria razonables. No nos entretendremos en discutir qu´e quiere decir razonable, que ser´ıa objeto de la asignatura Complejidad Computacional u otras.
Tras las consideraciones anteriores, podemos escribir el algoritmo de Euclides como sigue, donde rem(a, b) representa el resto de dividir a entre b:
Entrada :a, b ∈ Z mientras b 6= 0, hacer t ←− |a| a ←− |b| b ←− rem(t, a) salida :a
Pseudo–c´odigo del algoritmo de Euclides.
Naturalmente, el algoritmo anterior puede extenderse al c´alculo del m´aximo com´un divisor de m´as de dos enteros. Supongamos dados t enteros positivos a1, . . . , aty sea
R0 = (a1, . . . , at). Supongamos que i es el ´ındice de la coordenada m´as peque˜na de
R0. En este caso es f´acil ver que mcd(a1, . . . , at) es igual a
mcd(rem(a1, ai), . . . , rem(ai−1, ai), ai, rem(ai+1, ai), . . . , rem(at, ai))
Esta idea conduce al siguiente algoritmo.
entrada :(a1, a2, . . . , at) ∈ Zt
InicializarA := (|a1|, |a2|, . . . , |at|)
mientras A contenga, al menos, dos coordenadas no nulas hacer Calcular el ´ındice i del menor entero no nulo de A
A ←− (rem(a1, ai), . . . , rem(ai−1, ai), ai, rem(ai+1, ai), . . . , rem(at, ai))
salida :ai
Pseudo–c´odigo del algoritmo de Euclides para t enteros.
Ejemplo 2.10 Calcular el mcd de 120, 146 y 180. En este caso, se tiene: mcd(120, 146, 180) = mcd(120, 26, 60) = mcd(16, 26, 8) = mcd(0, 2, 8) = = mcd(0, 2, 0) = 2.
2.2. ALGORITMO DE EUCLIDES. TEOREMA DE LAM ´E 31
2.2.1.
Teorema de Lam´
e
Examinamos el algoritmo de Euclides sobre una entrada (a, b) tomando nota de cocientes y de restos. Si r0 = a y r1 = b, se tiene:
r0 = q1r1 + r2 r1 = q2r2 + r3 .. . (2.1) rn−2 = qn−1rn−1+ rn rn−1 = qnrn
Hemos probado con anterioridad que rn = mcd(a, b). Notemos, por otro lado, que
el ´ultimo cociente, qn es mayor o igual que 2 (salvo que n = 1).
Denotemos por E(a, b) el n´umero de divisiones que realiza el algoritmo de Euclides si el input es (a, b). El objetivo es probar una buena cota superior para E(a, b). Sea Fn el n–´esimo n´umero de Fibonacci que, recordemos, est´a definido por F0 = 0,
F1 = 1 y Fn= Fn−1+ Fn−2 si n ≥ 2.
Lema 2.11 Sean a y b enteros tales que a > b > 0 y supongamos que E(a, b) = n. Entonces, a ≥ Fn+2 y b ≥ Fn+1
Demostraci´on.– Utilizaremos la notaci´on de 2.1 y probaremos que r0 ≥ Fn+2 y
r1 ≥ Fn+1 por inducci´on en n.
El enunciado es cierto para n = 1. En este caso, el algoritmo de Euclides consta de una ´unica divisi´on, r0 = q0r1 y puesto que r0 > r1, los menores enteros que lo
verifican son r1 = 1 = F2 y r0 = 2 = F3.
Supongamos ahora que el enunciado es cierto para i < n; queremos probarlo para n. El primer paso del algoritmo de Euclides es r0 = q0r1+ r2 y sabemos que E(r1, r2) =
n − 1. Por lo tanto, r1 ≥ Fn+1 y r2 ≥ Fn. Por lo tanto, r0 ≥ r1+ r2 ≥ Fn+2.
A partir del Lema anterior y utilizando que Fn = αn− βn √ 5 , donde α = 1+ √ 5 2 y β = 1−√5 2 , se tiene
Corolario 2.12 Si a > b > 0, E(a, b) < c1log(u) + c2 − 2 + c3u−1, donde c1 = 1 log α = 2,08, c2 = log√5 log α = 1,67 y c3 = 1 √
5 log α = 0,93. (log logaritmo natural). Si
se escribe la cota anterior en t´erminos de la talla binaria de a (es decir, log2a) se obtiene, redondeando, que
Demostraci´on.– Supongamos que E(a, b) = n. Por el lema 2.11, sabemos que, en ese caso, a ≥ Fn+2. Entonces, a ≥ α n+2− βn+2 √ 5 > αn+2− 1 √ 5 .
En consecuencia, (n + 2) log α ≤ log(1 + a√5). Ahora, usando el hecho de que log(x + 1) = log x + log 1 +x1 y la estimaci´on log 1 + 1x < x1 para obtener
(n + 2) log α < log(a√5) + 1 a√5, se obtiene el resultado.
Observaci´on 2.13 Queda algo alejado del curso hacer consideraciones sobre la efi-ciencia de los algoritmos introducidos. Sin embargo, deje el lector que se le ofrezca un resultado que demuestra bien a las claras las posibilidades del Algoritmo de Eu-clides. A partir del resultado anterior se puede probar que el n´umero de operaciones binarias necesarias para calcular el mcd usando Euclides es
k · (log2a)(log2b)
Olvid´andonos de la constante k, si los enteros a y b tienen talla binaria 10000 (aprox-imadamente 3000 d´ıgitos en base 10), habr´a que realizar, m´as o menos, cien millones de operaciones binarias. Dado que, por ejemplo, los primeros procesadores Pentium realizaban entre 100 y 112 millones de operaciones binarias por segundo, un orde-nador equipado con uno de dichos procesadores, nos dar´ıa la respuesta en algo menos de un segundo.
Por otro lado, si usamos la factorizaci´on en producto de primos para calcular el m´aximo com´un divisor, la situaci´on no es, ni mucho menos, tan boyante. En la pr´actica, el mejor de los algoritmos de factorizaci´on conocidos (que utiliza t´ecnicas matem´aticas ciertamente sofisticadas) no puede factorizar, ni a´un usando el Super-Computer de IBM, enteros de varios cientos de d´ıgitos (aunque nadie ha probado a´un que nunca pueda encontrarse un algoritmo eficiente). Esta dificultad de la fac-torizaci´on es una de las ideas claves por la que el sistema criptogr´afico RSA que estudiaremos m´as adelante se haya convertido en el sistema criptogr´afico de uso com´un.
Por ´ultimo, se˜nalemos que la falta de una prueba que demuestre que no es posible encontrar un algoritmo eficiente para la factorizaci´on est´a estrechamente ligada a uno de los problemas centrales de la Inform´atica como es la Conjetura de Cook2.
2En la p´agina http://www.claymath.org/prizeproblems/pvsnp.htm del Clay Mathematics
Institute existe informaci´on (sencilla descripci´on del problema, art´ıculo m´as profundo sobre el asunto e incluso un v´ıdeo de una charla divulgativa) sobre esta conjetura. De hecho, el Instituto Clay ofrece un mill´on de d´olares a quien sea capaz de resolver esta conjetura.
2.3. IDENTIDAD DE B ´EZOUT. ALGORITMO EXTENDIDO DE EUCLIDES33
2.3.
Identidad de B´
ezout. Algoritmo extendido de
Euclides
Definici´on 2.14 Dados enteros a y b y su m´aximo com´un divisor d = mcd(a, b), se denomina identidad de B´ezout a una expresi´on de la forma
ax + by = d x, y ∈ Z.
El objetivo fundamental de esta secci´on, junto a la prueba del Teorema Fundamental de la Aritm´etica, es el demostrar que siempre existen tales enteros x e y y encontrar un algoritmo para su c´alculo. Pero antes, veamos un ejemplo. Aplicando el algoritmo de Euclides a a = 180 y b = 146, se tiene la siguiente sucesi´on de identidades:
180 = 1 ∗ 146 + 34 (2.2)
146 = 4 ∗ 34 + 10 (2.3)
34 = 3 ∗ 10 + 4 (2.4)
10 = 2 ∗ 4 + 2 (2.5)
4 = 2 ∗ 2 (2.6)
Supongamos que queremos encontrar una identidad de B´ezout, es decir, encontrar enteros x e y tales que
180 ∗ x + 146 ∗ y = 2
Para ello, podemos volver hacia atr´as en las identidades anteriores, es decir, de (2.5) se tiene
2 = 10 − 2 ∗ 4. Ahora, de (2.4) podemos despejar 4 y llegar a
2 = 7 ∗ 10 − 2 ∗ 34. De nuevo, usando (2.3) llegamos a
2 = 7 ∗ 146 − 30 ∗ 34. Finalmente, usando (2.2) se tiene
2 = −30 ∗ 180 + 37 ∗ 146.
Esta forma de proceder implicar´ıa que para resolver una identidad de B´ezout, habr´ıamos de aplicar el algoritmo de Euclides (tomando nota de restos y cocientes)
y despu´es volver hacia atr´as utilizando dichos restos y cocientes. Sin embargo, pode-mos organizar los c´alculos de manera que esto no sea necesario. Para ello, usaremos los cocientes para construir xk e yk tales que:
axk+ byk= rk (0 ≤ k ≤ n).
De este modo, si k = n, tendr´ıamos resuelto nuestro problema.
Para k = 0, basta tomar x0 = 1 e y0 = 0 y si k = 1, x1 = 0 e y1 = 1. Ahora
supongamos que hemos encontrado xk e yk para todo ´ındice 0 ≤ k ≤ s y queremos
calcular xs+1 e ys+1. Se tendr´ıa:
rs+1 = rs−1− rsqs= axs−1+ bys−1− qs(axs+ bys) = a(xs−1− qsxs) + b(ys−1− qsys)
Lo que hemos visto es que las sucesiones de enteros definidas por: x0 = 1, x1 = 0, xk+1 = xk−1− qkxk
y0 = 0, y1 = 1, yk+1 = yk−1− qkyk
verifican
axk+ byk= rk (0 ≤ k ≤ n).
De paso, esta construcci´on demuestra que:
Teorema 2.15 Para todo par de enteros a y b no los dos nulos, existen enteros x e y tales que se verifica la identidad de B´ezout:
ax + by = mcd(a, b)
Ejercicio. Probar que a y b son coprimos si, y s´olo si, existen enteros x e y tales que ax + by = 1.
Interpretaci´on matricial del Algoritmo extendido de Euclides
Llamemos, al igual que antes, r0 = a y r1 = b. Asimismo, consideremos las matrices
R0 = x0 x1 y0 y1 = I S0 = r0 r1 x0 x1 y0 y1
Obs´ervese que det(R0) = 1. El primer paso en el algoritmo de Euclides extendido
2.3. IDENTIDAD DE B ´EZOUT. ALGORITMO EXTENDIDO DE EUCLIDES35 calcular x2 = x0− x1q1 e y2 = y0− y1q1. En consecuencia, podemos pensar que si
llamamos Q1 a la matriz Q1 = 0 1 1 −q1 , se tiene R1 = x1 x2 y1 y2 = R0Q1 y S1 = r1 r2 x1 x2 y1 y2 = S0Q1
Adem´as, es f´acil ver que este producto por Q1 consiste, en realidad, en restar a la
primera columna de S0 la segunda multiplicada por q1 e intercambiar las columnas
de S0. Por otro lado, se tiene que det(R1) = −1, es decir, x1y2− x2y1 = −1 lo que
implica que mcd(x2, y2) = 1. Este proceso se contin´ua obteniendo matrices
Rk= xk xk+1 yk yk+1 = Rk−1Qk = R0Q1· · · Qk y Sk = rk rk+1 xk xk+1 yk yk+a = Sk−1Qk = S0Q1· · · Qk que verifican det(Rk) = (−1)k, axk+ byk = rk, axk+1+ bxk+1 = rk+1,
lo que, en particular, implica que mcd(xk, yk) = 1. El algoritmo sigue hasta que en
el lugar (1, 2) de una de las matrices Sk aparezca un cero. De este modo, si en el
algoritmo extendido de Euclides se realizan n divisiones, se tendr´a
Rn= xn xn+1 yn yn+1 = Rn−1Qn y S1 = rn 0 xn xn+1 yn yn+1 = Sn−1Qn,
con lo que se tiene:
axn+ byn = mcd(a, b), axn+1+ byn+1= 0, mcd(xn, yn) = mcd(xn+1, yn+1) = 1.
La ´ultima de las igualdades se obtiene de det(Rn) = (−1)n. En particular se tendr´a,
si b 6= 0, que la fracci´on yn+1
xn+1 es reducida e igual a −
a
b. Dicho de otra manera,
|xn+1| =
|b|
mcd(a, b) e |yn+1| =
|a| mcd(a, b)
De hecho, la construcci´on anterior no s´olo proporciona una prueba del Teorema sino que nos da un algoritmo para su c´alculo.3 En la forma en la que aparece descrito a continuaci´on, coc(A, B) denota el cociente de la divisi´on eucl´ıdea de A por B.
Input :a, b ∈ Z Inicializar : S := a b 1 0 0 1 while s12 6= 0, do Q ← 0 1 1 −coc(s11, s12) S ← S · Q endwhile Output : s11, x = s21, y = s31
Algoritmo Extendido de Euclides.
Obs´ervese que como subproducto del algoritmo anterior, se obtienen xn+1 e yn+1
cuya utilidad se ver´a en la resoluci´on de ecuaciones diof´anticas lineales
A partir del Teorema 2.15, podemos demostrar la anunciada unicidad de la factori-zaci´on de un n´umero entero, pero antes un resultado previo.
Teorema 2.16 Si a|bc y mcd(a, b) = 1, entonces a|c. En particular, si p es primo y p|ab, entonces p|a o p|b.
Demostraci´on.– Gracias a la identidad de B´ezout sabemos que existen enteros x e y tales que ax + by = 1. Multiplicando por c se tiene c = cax + cby, con lo que a divide a los dos sumandos a la derecha y, por lo tanto, a c.
A partir del Teorema anterior y pagando un bajo precio, en forma de sencillo argu-mento inductivo, se puede probar que
Si p es primo y p|a1· · · ak, entonces p divide a alg´un ai
Todas estas disquisiciones realizadas sobre la relaci´on entre n´umeros primos y di-visibilidad nos ponen en condiciones de probar la unicidad, ya anunciada, de la expresi´on de un n´umero entero como producto de ±1 y n´umeros primos.
2.4. ECUACIONES DIOF ´ANTICAS LINEALES 37 Teorema 2.17 (Teorema fundamental de la aritm´etica) Todo entero positi-vo
puede expresarse como producto de potencias no triviales de n´umeros primos n = pα1 1 p α2 2 · · · p αk k
y, salvo, reordenaci´on de los factores, esta factorizaci´on es ´unica.
Demostraci´on del Teorema Fundamental de la Aritm´etica.– La existencia de la fac-torizaci´on se sigue del Teorema 2.4 y, por lo tanto, s´olo queda probar la unicidad. Sea S el conjunto de enteros positivos que admiten dos factorizaciones distintas y, supongamos, por reducci´on al absurdo, que este conjunto es no vac´ıo. Por la buena ordenaci´on de N, sabemos que, en ese caso, el conjunto S admite m´ınimo, digamos n. Se tendr´an dos factorizaciones distintas de n:
n = pα1 1 p α2 2 · · · p αk k y n = qβ1 1 q β2 2 · · · qβss.
Es claro que p1 divide a qβ11q β2
2 · · · qβss y, por lo tanto, a alguno de los q βi
i . A´un m´as, se
tendr´a que p1 divide a alguno de los qi lo que implica que es igual a alguno de los qi.
Reordenando los qi, podemos suponer que p1 = q1. En consecuencia, se tendr´a que
n p1 = pα1−1 1 p α2 2 · · · p αk k = q β1−1 1 q β2 2 · · · q βs s .
Puesto que las factorizaciones de n consideradas eran distintas, tenemos dos facto-rizaciones distintas del entero positivo pn
1 < n, lo que contradice el hecho de que n
sea el m´ınimo de S.
2.4.
Ecuaciones diof´
anticas lineales
Se llaman ecuaciones diof´anticas a aqu´ellas de las que nos interesan las soluciones enteras. Un caso interesante es de las ecuaciones diof´anticas lineales en dos variables
aX + bY = c a, b, c ∈ Z (2.7)
Puesto que el caso a = b = 0 no tiene ning´un inter´es, supondremos que (a, b) 6= (0, 0). Utilizando el Algoritmo de Euclides extendido, sabemos encontrar una soluci´on si c = mcd(a, b). Del mismo modo, es obvio encontrar una soluci´on si mcd(a, b) divide a c. Dicho de otra manera, la ecuaci´on diof´antica tiene soluci´on si c divide a mcd(a, b).
¿Y si mcd(a, b) no divide a c? En este caso, no puede haber soluci´on: si existiesen enteros x e y tales que
ax + by = c,
se tendr´ıa que todo factor com´un de a y de b tambi´en lo ser´ıa de c. En particular, el m´aximo com´un divisor de a y de b dividir´ıa a c.
Recopilando, hemos demostrado que la ecuaci´on diof´antica 2.7 tiene soluci´on si, y s´olo si, c divide a mcd(a, b). De hecho, sabemos c´omo encontrar una soluci´on: aplicamos el algoritmo extendido de Euclides a a y b obteniendo x0 e y0 tales que
ax0 + by0 = mcd(a, b). Es claro que (mcd(a,b)c x0,mcd(a,b)c y0) es soluci´on de 2.7. Sin
embargo, hasta ahora no nos hemos preocupado por saber si hay m´as de una soluci´on y, en el caso de que haya m´as de una, saber cu´ales son todas las soluciones. Para analizar este problema, estudiemos la ecuaci´on diof´antica
aX + bY = 0 (2.8)
por cuanto si (x1, y1) es soluci´on cualquiera de la ecuaci´on diof´antica 2.7 y (x0, y0)
soluci´on de 2.8, es f´acil ver que (x1+ x0, y1 + y0) es soluci´on de 2.7. Una soluci´on
obvia ( y la m´as “peque˜na”) a la ecuaci´on diof´antica 2.8 es b mcd(a, b), − a mcd(a, b) , pero tambi´en lo son todas las de la forma
t b mcd(a, b), −t a mcd(a, b) , con t ∈ Z. As´ı pues, si (x1, y1) es soluci´on cualquiera de 2.7 el conjunto
{ x1+ b mcd(a, b)t, y1− a mcd(a, b)t : t ∈ Z},
es un conjunto de infinitas soluciones de 2.7. ¿Hay m´as? Para verlo, sea (x, y) una soluci´on de 2.7. Por lo tanto,
ax1+ by1 = c y
ax + by = c.
Restando, se tiene a(x − x1) + b(y − y1) = 0 y, dividiendo por mcd(a, b),
a
mcd(a, b)(x − x1) + b
2.5. M´INIMO COM ´UN M ´ULTIPLO 39 Ahora, supongamos que b 6= 0 (si b = 0 y a 6= 0, har´ıamos el mismo argumento que sigue con a). Como
mcd a mcd(a, b), b mcd(a, b) = 1
y mcd(a,b)b divide a (x − x1)mcd(a,b)a , se tiene que mcd(a,b)b divide a (x − x1), es decir,
x − x1 = t
b
mcd(a, b), para alg´un t ∈ Z. Sustituyendo en 2.9, se obtiene que
y − y1 = −t
b mcd(a, b).
Los argumentos anteriores prueban que el siguiente resultado es cierto. Proposici´on 2.18 Dados enteros a, b, c la ecuaci´on diof´antica
aX + bY = c
tiene soluci´on si, y s´olo si, mcd(a, b) divide a c. En caso de que tenga soluci´on tiene infinitas, dadas por
{ x1+ b mcd(a, b)t, y1− a mcd(a, b)t : t ∈ Z}, donde (x1, y1) es una soluci´on particular cualquiera.
De hecho, hemos encontrado un algoritmo para resolver ecuaciones diof´anticas de la forma 2.7, ya que basta encontrar una soluci´on particular cualquiera y, para ello podemos utilizar el algoritmo extendido de Euclides.
2.5.
M´ınimo com´
un m´
ultiplo
Definici´on 2.19 Si a y b son dos enteros, un m´ultiplo com´un de a y b es un entero c tal que a|c y b|c. Si a y b son ambos no nulos, existen m´ultiplos comunes positivos (por ejemplo |ab|), por lo que la buena ordenaci´on de N nos asegura la existen-cia de un m´ınimo com´un m´ultiplo, es decir, el menor m´ultiplo com´un positivo. Normalmente, se escribe mcm(a, b).
De hecho, se tiene que el m´ınimo com´un m´ultiplo de a y b es el ´unico entero positivo m que verifica:
2) Si c es un entero que verifica a|c y b|c, entonces, m|c (por ser el menor de los m´ultiplos comunes).
El m´ınimo com´un m´ultiplo est´a estrechamente ligado al m´aximo com´un divisor. Esta ligaz´on viene dada por el siguiente resultado.
Teorema 2.20 Sean a y b dos enteros. Se tiene
|ab| = mcd(a, b) · mcm(a, b).
Demostraci´on.– Se trata de probar que el entero positivo
m = |ab|
mcd(a, b)
es el m´ınimo com´un m´ultiplo de a y b, es decir, que verifica las dos propiedades anteriores.
En primer lugar, es claro que a|m por cuanto mcd(a, b) divide a b y, por lo tanto, podemos escribir
m = |a| · |b| mcd(a, b). De igual forma puede verse que b|m.
Por otro lado, supongamos que c es un entero que es m´ultiplo com´un de a y b, es decir,
c = au para alg´un entero u y c = bv para alg´un entero v. Se tiene, entonces que
a mcd(a, b)u = b mcd(a, b)v y, como a mcd(a,b) y b
mcd(a,b) son primos entre s´ı, que a
mcd(a,b) divide a v, es decir,
v = k a
mcd(a, b) para alg´un entero k. Finalmente, se tendr´a
c = bv = k ab
2.6. PROBLEMAS PROPUESTOS 41
2.6.
Problemas propuestos
Problema 2.1 .- (Expresi´on de n´umeros natural en bases distintas de la decimal) Demostrar que, dado un natural q > 0, todo n´umero natural n puede expresarse de manera ´unica en la forma
akqk+ ak−1qk−1+ · · · + a1q + a0,
con 0 ≤ ak< q, donde k el ´unico natural para el que se verifica qk ≤ n < qk+1.
Problema 2.2 .- Sea
akak−1. . . a1a0, ai ∈ {0, 1}
la expresi´on en base 2 (binaria) de un cierto n´umero natural. Expresar, en base 2, cociente y resto de la divisi´on por 2 de dicho n´umero.
Problema 2.3 .- Si (A, +, ·) es un anillo conmutativo con elemento unidad, un subconjunto I se llama ideal si
a + b ∈ I para todo a, b ∈ I x ∈ A y a ∈ I =⇒ xa ∈ I.
(1) Probar que si a1, . . . , an son elementos cualesquiera del anillo A, el conjunto
(a1, . . . , an) = {a1x1+ a2x2+ . . . + anxn: xi ∈ A}
es un ideal de A. Todo ideal que se puede expresar de esta forma, se dice finitamente generado. Si n = 1, se denomina principal.
(2) Probar que en Z todo ideal es principal. Un anillo sin divisores de cero y que verifica esta propiedad se dice dominio de ideales principales.
(3) Sean ahora, (a) y (b) dos ideales de Z. ¿Qui´en es el menor ideal que contiene a ambos? ¿Qui´en es la intersecci´on de (a) y (b)?
Problema 2.4 .- Dados a y b enteros no nulos, los podemos escribir en la forma a = ± n Y i=1 pαi i , a = ± n Y i=1 pβi i , αi, βi ≥ 0.
donde los pi son todos los primos que dividen a ab. Comprobar que
mcd(a, b) = n Y i=1 pmin{αi,βi} i y mcm(a, b) = n Y i=1 pmax{αi,βi} i
Problema 2.5 .- Para cada uno de los pares de enteros siguientes, calcular el m´aximo com´un divisor utilizando el algoritmo de Euclides:
(i) 34, 21; (ii) 136, 51; (iii) 481, 325; (iv) 8711, 3206; (v) 1134, 1221; En cada uno de los casos, resuelve la correspondiente identidad de B´ezout.
Problema 2.6 .- El algoritmo de Euclides puede hacerse ligeramente m´as r´apido si permitimos restos negativos en la forma que sigue
ri−1= riqi+ ri+1 con − |ri/2| < ri+1≤ |ri/2|.
Por ejemplo, si aplicamos este m´etodo para calcular el m´aximo com´un divisor de 59 y 49, se tiene
mcd(59, 49) = mcd(49, 10) = mcd(10, −1) = mcd(−1, 0) = 1.
Utilizar este algoritmo, conocido como del m´ınimo resto, para calcular los m´aximos comunes divisores del ejercicio anterior y resolver las correspondientes identidades de B´ezout.
Problema 2.7 .- Demostrar las siguientes propiedades del m´aximo com´un divisor.
1. Si a y b son pares, mcd(a, b) = 2mcd a 2,
b 2
2. Si a es par y b es impar, mcd(a, b) = mcda 2, b
3. Si a y b son impares, mcd(a, b) = mcd |a − b| 2 , b
A partir de las propiedades anteriores, construir un algoritmo para calcular el m´ axi-mo com´un divisor de dos enteros realizando ´unicamente divisiones por 2. (Nota: Este algoritmo se conoce como algoritmo binario para el c´alculo del mcd y es debido a J. Stein que public´o su resultado en 1967).
Problema 2.8 .- Consid´erese la siguiente variante del algoritmo binario para el c´omputo de mcd(a, b). Asumamos que a y b no son los dos pares.
1) Si a es par, sustituimos (a, b) por (a/2, b). 2) Si b es par, sustituimos (a, b) por (a, b/2).
2.6. PROBLEMAS PROPUESTOS 43 El algoritmo consiste en repetir los pasos (1)-(3) en ese orden. Si a o b es cero, paramos y devolvemos como mcd(a, b) el otro n´umero en valor absoluto. Por ejemplo, para calcular mcd(15, 6) utilizando este algoritmo, se tendr´ıa:
(15, 6) → (15, 3) → (9, 6) → (9, 3) → (6, 3) → (3, 3) → (3, 0)
Demostrar que este algoritmo siempre acaba y que la respuesta es correcta. (Indi-caci´on: Para probar que el algoritmo termina, considera la aplicaci´on f (a, b) = a2+b2 y comprueba que cada vez que se da un paso en el algoritmo su valor decrece). Problema 2.9 .- Probar las siguientes propiedades de la sucesi´on de Fibonacci:
Dos t´erminos consecutivos de la sucesi´on son coprimos, es decir, mcd(Fn−1, Fn) = 1 para n ≥ 1
El mayor natural menor que Fn+2/Fn+1 (escrito bFn+2/Fn+1c) es 1.
El resto de la divisi´on de Fn+1 por Fn es Fn−1.
Problema 2.10 .- Descomponer de todas las formas posibles el n´umero racional 100/273 en suma de dos fracciones positivas con denominadores 21 y 13.
Problema 2.11 .- (Algoritmo extendido de Euclides para t enteros) Bas´andose en la interpretaci´on matricial del algoritmo extendido de Euclides, dise˜nar un algoritmo para calcular, dados enteros a1, . . . , at, una identidad de B´ezout del tipo
a1x1+ a2x2+ · · · + atxt= mcd(a1, . . . , at).
Aplicar dicho algoritmo a la resoluci´on de ecuaciones diof´anticas de la forma a1X1+ a2X2+ · · · + anXn = b.
Problema 2.12 .- Para cada una de las ecuaciones diof´anticas siguientes, estudiar si tienen soluci´on y, en su caso, calcular todas las soluciones:
25X + 36Y = 10 ; 40X + 50Y = 3 ;
200X − 1768Y = 8 ; 213X + 1123Y = 18 ;
30X + 1107Y + 3030303Z = 25 ; 10X + 11Y + 20Z = 10 ;
Problema 2.13 .- Resolver el sistema de ecuaciones diof´anticas lineales: n11X + 3Y + 5Z = 20
3X + 7Y + 10Z = 10
Problema 2.14 .- Supongamos que el m´aximo com´un divisor de a y b es un primo p. ¿Cu´ales son los posibles valores del m´aximo com´un divisor de a2 y b? ¿Y del
m´aximo com´un divisor de a3 y b? Si m.c.d(a, b) = p, ¿cu´anto vale m.c.d(a3, b3)? Problema 2.15 .- Una empresa alemana est´a replante´andose sus planes de ac-tividad. Tiene una f´abrica en Espa˜na con un millar de empleados espa˜noles y un centenar de ejecutivos alemanes y est´a estudiando una reestructuraci´on de plantilla. Obviamente sin informar a los sindicatos; aunque estos sospechan que va a haber alg´un despido. Un representante sindical encuentra en una fotocopiadora un docu-mento del estudio de reestructuraci´on de plantilla (olvidado por error, obviamente) en que se puede leer
El 80.9 por ciento de los que van a ser despedidos est´a casado.
El 43.5 por ciento de los que van a ser despedidos est´a pagando hipoteca. Deducir qu´e piensan hacer los alemanes con la empresa.
Problema 2.16 .- Un turista estadounidense va a pasar unos d´ıas de vacaciones en Par´ıs, Madrid y Cracovia y desea cambiar 810 d´olares en euros y en zlotys. Sabiendo que el euro se cotiza a 0,90 d´olares y un zloty a 0,24, ¿de cu´antas formas posibles puede hacer el cambio si necesita para su estancia en Cracovia, al menos, 3000 zlotys?
Problema 2.17 .- Sean dados dos n´umeros naturales no nulos a y b. ¿Es posible es-cribir el n´umero racional m.c.m.1 (a,b) como suma de dos racionales de denominadores a y b? En caso de respuesta afirmativa, esbozar un algoritmo para el c´alculo de dichos racionales.
Problema 2.18 .- Una cierta empresa fabrica tres productos A, B y C que vende a 590, 410 y 300 euros respectivamente. Calcular cu´antas unidades de cada producto se vendieron en un d´ıa determinado sabiendo que:
La recaudaci´on por la venta de los productos fue de 32420 euros. Se vendieron m´as unidades de A que de B.
El n´umero de unidades de C vendidas fue mayor que 83.
Problema 2.19 .- Resolver el siguiente problema: Si un gallo cuesta siete mon-edas, una gallina cinco monedas y tres pollos una moneda, ¿de cu´antas formas distintas pueden comprarse un total de trescientas aves (gallos, gallinas y pollos) si disponemos de quinientas monedas? Escribir cada una de estas formas posibles.
2.6. PROBLEMAS PROPUESTOS 45 Problema 2.20 .- Una compa˜n´ıa a´erea ofrece tres tipos de billetes en sus vuelos de Madrid a Par´ıs. Los billetes de clase preferente cuestan 150 euros, los de clase turista con derecho a comida 110 y el resto 67. Si, en un vuelo concreto un total de 100 pasajeros pagaron un total de 10766 euros, ¿cu´antos billetes de cada tipo se vendieron?
Problema 2.21 .- Probar que para cada n´umero natural n, existen siempre n n´umeros compuestos consecutivos.
Problema 2.22 .- Si mn es un cuadrado perfecto y mcd(m, n) = 1, demostrar que m y n son tambi´en cuadrados perfectos.
Problema 2.23 .- (N´umeros de Fermat)
i) Demostrar que si 2m+ 1 es primo, m es una potencia de 2, es decir, m = 2n para alg´un natural n.
Nota. Los n´umeros de la forma 22n + 1 se llaman n´umeros de Fermat y si son primos, se les dice primos de Fermat. Pierre de Fermat (1601-1665) con-jetur´o que todos los n´umeros de la forma 22n + 1 eran primos, pues pudo
comprobar que eso era cierto para n = 0, 1, 2, 3, 4. Sin embargo, en 1732 Leon-hard Euler (1707-1783) demostr´o que 641 era factor de 232+ 1 = 4294967297.
A fecha de hoy, los ´unicos primos de Fermat conocidos son los que se corre-sponden con n = 0, 1, 2, 3, 4, aunque no se sabe si hay m´as.
ii) Demostrar que dos n´umeros de Fermat distintos son siempre primos entre s´ı. Problema 2.24 .- Un primo de Mersenne es un n´umero primo de la forma 2n− 1.
Demostrar que si 2n− 1 es primo, n ha de ser primo.
Nota. En 1644, Mersenne conjetur´o que 2p − 1 era primo para p = 2, 3, 5, 7, 13,
17, 19, 31, 67, 127, 257 y para ning´un otro primo menor que 257. En la lista de Mersenne, hab´ıa errores por cuanto los n´umeros correspondientes a 67 y 257 no son primos y le faltaban los correspondientes a 61 y 89. A fecha de hoy, s´olo se conocen 38 primos de Fermat, el mayor de los cuales es 26972593−1, n´umero ´este que tiene m´as
de 2 millones de d´ıgitos decimales. Una lista de los primos de Mersenne conocidos puede verse en http://www.utm.edu/research/primes/mersenne.shtml#known.
Problema 2.25 .- Dado un entero positivo n, sea σ(n) = P
d|n
d la suma de todos sus divisores positivos. Por ejemplo, σ(27) = 1 + 3 + 9 + 27 = 40. Demostrar que si mcd(m, n) = 1, σ(nm) = σ(n)σ(m) y encontrar una f´ormula para calcular σ(n) a partir de la descomposici´on de n en factores primos.
Problema 2.26 .- Un n´umero perfecto es un entero positivo que es igual a la suma de sus divisores distintos de ´el mismo (p.e., 6 es perfecto pues 6 = 1 + 2 + 3). Demostrar que los n´umeros perfectos pares son exactamente los de la forma 2k−1(2k− 1), con 2k− 1 un primo de Mersenne. (Indicaci´on: Para ver que un n´umero
perfecto par tiene esa forma, escr´ıbelo primero en la forma 2k−1n0 con n0 impar,
demostrar que n0 es divisible por 2k− 1 y comprueba que n0 tiene que ser primo
estudiando σ(n0)).
Nota: No se sabe si existen n´umeros perfectos impares. Por otro lado, los primeros n´umeros perfectos son: 6 = 21(22− 1), 28 = 22(23 − 1), 496 = 24· (25− 1), 8128 =
26· (27− 1), 33550336 = 212(213− 1),...
Problema 2.27 .- Sean a y b n´umeros positivos coprimos. Demostrar que para todo entero positivo n > ab, existen n´umeros enteros positivos x e y tales que
n = ax + by
A partir de lo anterior, deducir que todo n´umero entero > 11 puede escribirse como suma de dos n´umeros compuestos.