Cap´ıtulo 2 Divisibilidad en Z - IMERL
Cap´ıtulo 2 Divisibilidad en Z - IMERL
Cap´ıtulo 2 Divisibilidad en Z - IMERL
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Capítulo 2<br />
<strong>Divisibilidad</strong> <strong>en</strong> Z<br />
2.1. División euclídea <strong>en</strong> Z. Máximo común divisor<br />
Definición 2.1 Dados dos números <strong>en</strong>teros a y b, con b = 0, se dice que b divide<br />
a a o que a es múltiplo de b o que b es divisor de a, si existe otro <strong>en</strong>tero q tal que<br />
a = bq. Se escribe<br />
b | a<br />
Naturalm<strong>en</strong>te, todo número <strong>en</strong>tero a distinto de 1 y −1 ti<strong>en</strong>e, al m<strong>en</strong>os, cuatro<br />
divisores, a saber, ±1 y ±a. A estos divisores se les conoce con el nombre de divisores<br />
(o factores) triviales de a. Otras propiedades, de todos conocidas, de la divisibilidad<br />
se recog<strong>en</strong> <strong>en</strong> la sigui<strong>en</strong>te Proposición:<br />
Proposición 2.2 En las propiedades sigui<strong>en</strong>tes todos los números serán <strong>en</strong>teros y<br />
|a| d<strong>en</strong>otará el valor absoluto de a.<br />
1) d|a ⇐⇒ −d|a ⇐⇒ d| − a,<br />
2) d|a, a = 0 y d ≥ 0 =⇒ 1 ≤ d ≤ |a|,<br />
3) d|1 =⇒ d = 1 o d = −1,<br />
4) a|b y b|a =⇒ b = a o b = −a,<br />
5) a|b y b|c =⇒ a|c,<br />
6) a|b y a|c =⇒ a|b + c,<br />
7) a|b y a|c =⇒ a|bc,<br />
8) a|b y c ∈ Z =⇒ ac|bc,<br />
25
26 CAPÍTULO 2. DIVISIBILIDAD EN Z<br />
9) a|b y c|d =⇒ ac|bd,<br />
10) ac|bc y c = 0 =⇒ a|b.<br />
Nota. La prueba de estas propiedades requiere el uso de la Definición 2.1 y de los<br />
axiomas que defin<strong>en</strong> los números <strong>en</strong>teros. Como la prueba de dichas propiedades es<br />
s<strong>en</strong>cilla, la dejaremos como ejercicio.<br />
De <strong>en</strong>tre todos los números <strong>en</strong>teros, adquier<strong>en</strong> una singular importancia los conocidos<br />
como números primos que, desde siempre, han fascinado a los matemáticos<br />
y al resto de los mortales. Por poner un ejemplo, <strong>en</strong> la película Contact dirigida<br />
por Robert Zemeckis <strong>en</strong> 1997 y cuyo guión se basa <strong>en</strong> una novela de Carl Sagan, el<br />
primer m<strong>en</strong>saje que recibe de los extraterrestres la Dra. Arroway, interpretada por<br />
Jodie Foster, es una sucesión de números primos.<br />
Definición 2.3 Un <strong>en</strong>tero p > 1 se dice primo si sus únicos divisores positivos son<br />
los triviales, es decir, 1 y p.<br />
Los primeros primos son:<br />
Nótese que 1 no es primo.<br />
2, 3, 5, 7, 11, 13, 17, 19, 23, ...<br />
Teorema 2.4 (Euclides, Libro IX de los Elem<strong>en</strong>tos, aprox. 300 a. C.) Todo<br />
número <strong>en</strong>tero mayor que 1 es producto de primos.<br />
Demostración.– Inducción <strong>en</strong> la talla.<br />
En particular, todo <strong>en</strong>tero no nulo es producto de uno de los números ±1 y de<br />
números primos. Veremos más adelante que esta expresión es, es<strong>en</strong>cialm<strong>en</strong>te, única.<br />
Teorema 2.5 (Euclides, Libro IX de los Elem<strong>en</strong>tos) Exist<strong>en</strong> infinitos números<br />
primos.<br />
La prueba de este resultado es s<strong>en</strong>cilla y su interés radica <strong>en</strong> el hecho de que es<br />
una de las primeras demostraciones conocidas <strong>en</strong> las que se utilizó la reducción al<br />
absurdo.<br />
Demostración.– Supongamos que hay un número finito, digamos n, de primos a los<br />
que d<strong>en</strong>otaremos por p1, p2, . . . , pn. Consideremos el número
2.1. DIVISIÓN EUCLÍDEA EN Z. MÁXIMO COMÚN DIVISOR 27<br />
N = p1p2 · · · pn + 1.<br />
Por el teorema anterior, sabemos que N es producto de primos. Sea, pues, p un<br />
factor primo de N. Este primo ha de ser uno de los p1, p2, . . . , pn, digamos p = pi.<br />
Entonces, pi divide a N − p1p2 · · · pn que es igual a 1, con lo que hemos llegado a<br />
una contradicción.<br />
Una de las primeras tareas matemáticas (y algorítmicas) que realizamos <strong>en</strong> nuestra<br />
vida es la de apr<strong>en</strong>der a dividir números naturales con resto. La forma <strong>en</strong> la que nos<br />
<strong>en</strong>señan a dividir, basada <strong>en</strong> la búsqueda de un natural que “quepa”(si no la mejor<br />
desde un punto de vista de efici<strong>en</strong>cia) es, <strong>en</strong> cierto modo, la misma idea <strong>en</strong> la que<br />
se basa la demostración del sigui<strong>en</strong>te teorema.<br />
Teorema 2.6 (División euclídea) Si a y b son dos <strong>en</strong>teros, b = 0, existe un único<br />
par de <strong>en</strong>teros q y r tales que:<br />
a = bq + r y 0 ≤ r < |b|.<br />
A q y a r se les conoce, respectivam<strong>en</strong>te, como coci<strong>en</strong>te y resto de la división euclídea<br />
de a por b.<br />
Demostración.– Empecemos por demostrar la exist<strong>en</strong>cia de coci<strong>en</strong>te y resto.<br />
Supongamos, primero, que b > 0 y sea S = {x ∈ Z : bx ≤ a}. Este conjunto S es<br />
no vacío (−|a| pert<strong>en</strong>ece a S) y está acotado superiorm<strong>en</strong>te (por ejemplo, por |a|).<br />
En consecu<strong>en</strong>cia, ti<strong>en</strong>e máximo. Llamaremos q a este máximo y r = a − bq. Por<br />
construcción, se ti<strong>en</strong>e que a = bq + r. Veamos que r verifica lo exigido. En efecto,<br />
r ≥ 0 (por pert<strong>en</strong>ecer q a S)<br />
r < |b| = b. Si r ≥ b, se t<strong>en</strong>dría b(q+1) = bq+b ≤ bq+r = a y, <strong>en</strong> consecu<strong>en</strong>cia<br />
q + 1 pert<strong>en</strong>ecería a S contradici<strong>en</strong>do el hecho de q es el máximo de S.<br />
Si b < 0, aplicamos el caso anterior a −b.<br />
Para probar la unicidad supongamos que q1, r1 y q2, r2 verifican las condiciones del<br />
teorema, es decir,<br />
a = bq1 + r1 con 0 ≤ r1 < |b| y<br />
a = bq2 + r2 con 0 ≤ r2 < |b|<br />
y que r1 ≤ r2. Restando, se ti<strong>en</strong>e b(q1 −q2) = r2 −r1. Por lo tanto, |b| divide a r2 −r1,<br />
pero también se ti<strong>en</strong>e que 0 ≤ r2 − r1 < |b|. Esto sólo es posible si r2 − r1 = 0. Por<br />
lo tanto, r2 = r1 y, <strong>en</strong> consecu<strong>en</strong>cia q2 = q1.
28 CAPÍTULO 2. DIVISIBILIDAD EN Z<br />
Definición 2.7 (Máximo común divisor) Si d|a y d|b decimos que d es un divisor<br />
común (o factor común) de a y b; por ejemplo, 1 es un divisor común a cualquier<br />
par de <strong>en</strong>teros a y b. Si a y b no son los dos nulos, el Teorema 2.6 prueba que ninguno<br />
de sus divisores comunes puede ser mayor que max(|a|, |b|), por lo que podemos asegurar<br />
que de <strong>en</strong>tre todos sus divisores comunes debe existir uno que sea el mayor de<br />
ellos. Este es el máximo común divisor de a y b que d<strong>en</strong>otaremos por mcd(a, b);<br />
si<strong>en</strong>do el único <strong>en</strong>tero d que satisface<br />
d|a y d|b (por ser d un divisor común),<br />
Si c|a y c|b, c|d (pues d es el mayor de los divisores comunes de a y b).<br />
Sin embargo, el caso a = b = 0 debe ser excluido; cualquier <strong>en</strong>tero divide a 0<br />
y es, por tanto, un divisor común de a y b, por lo que, <strong>en</strong> este caso, no existe<br />
un máximo común divisor. Esta definición puede obviam<strong>en</strong>te ext<strong>en</strong>derse al máximo<br />
común divisor de cualquier conjunto finito de <strong>en</strong>teros (no todos nulos).<br />
Nota. Dos números <strong>en</strong>teros a y b se dic<strong>en</strong> coprimos o primos <strong>en</strong>tre sí si no pose<strong>en</strong><br />
factores comunes no triviales, esto es, si mcd(a, b) = 1.<br />
Al igual que hicimos con la divisibilidad, recogemos <strong>en</strong> la sigui<strong>en</strong>te Proposición<br />
algunas propiedades básicas del máximo común divisor.<br />
Proposición 2.8 En las propiedades sigui<strong>en</strong>tes todos los números son <strong>en</strong>teros y |a|<br />
d<strong>en</strong>otará el valor absoluto de a.<br />
1) mcd(a, b) = mcd(b, a),<br />
2) mcd(a, b, c) = mcd(mcd(a, b), c) = mcd(a, mcd(b, c)),<br />
3) mcd(a, 0) = mcd(a, a) = |a|,<br />
4) mcd(a, b) = mcd(−a, b) = mcd(|a|, |b|),<br />
5) mcd(ca, cb) = |c|mcd(a, b),<br />
6) mcd(a, b) = mcd(a, b + ac),<br />
<br />
a<br />
7) mcd<br />
mcd(a, b) ,<br />
<br />
a<br />
= 1,<br />
mcd(a, b)<br />
Una de las primeras aplicaciones del máximo común divisor que suele realizarse <strong>en</strong> la<br />
escuela es la reducción del tamaño de numerador y d<strong>en</strong>ominador <strong>en</strong> la aritmética con<br />
números racionales. Obviam<strong>en</strong>te, esto requerirá, sobre todo si se pi<strong>en</strong>sa <strong>en</strong> números
2.2. ALGORITMO DE EUCLIDES. TEOREMA DE LAMÉ 29<br />
de gran tamaño, de un algoritmo efici<strong>en</strong>te 1 para su cálculo. Afortunadam<strong>en</strong>te (no<br />
siempre es el caso para otros problemas) se dispone de un método que, sorpr<strong>en</strong>d<strong>en</strong>tem<strong>en</strong>te,<br />
se hallaba ya <strong>en</strong> los Elem<strong>en</strong>tos de Euclides. Según D. Knuth, the oldest<br />
nontrivial algorithm that has survived to the pres<strong>en</strong>t day.<br />
2.2. Algoritmo de Euclides. Teorema de Lamé<br />
Trataremos, <strong>en</strong> esta Sección, de construir un algoritmo efici<strong>en</strong>te para el cálculo del<br />
máximo común divisor y estudiar algunas de sus propiedades. Naturalm<strong>en</strong>te, la<br />
propia definición de máximo común divisor proporciona un algoritmo para calcular<br />
mcd(a, b): construir la lista de divisores de a y b y tomar el mayor de los comunes.<br />
Sin embargo, para grandes números, este algoritmo es, ciertam<strong>en</strong>te, inaplicable.<br />
El algoritmo de Euclides que estudiaremos para el cálculo del máximo común divisor<br />
se basa <strong>en</strong> la s<strong>en</strong>cilla observación sigui<strong>en</strong>te:<br />
d|a y d|b ⇐⇒ d|a y d|r,<br />
si<strong>en</strong>do r el resto de la división de a por b. Esto quiere decir que los divisores comunes<br />
de a y b son los divisores comunes de a y r, por lo que mcd(a, b) = mcd(b, r).<br />
El algoritmo de Euclides explota la idea anterior para simplificar el cálculo del<br />
máximo común divisor reduci<strong>en</strong>do el tamaño de los <strong>en</strong>teros sin alterar su máximo<br />
común divisor. Eliminando casos triviales, podemos suponer que a > b > 0. Sean<br />
r0 = a, r1 = b. Dividi<strong>en</strong>do, se t<strong>en</strong>drá que r0 = q1r1 + r2 con 0 ≤ r2 < r1 = b.<br />
Si r2 = 0, <strong>en</strong>tonces b|a, por lo que mcd(a, b) = b y hemos terminado. Si r2 = 0,<br />
dividimos r1 <strong>en</strong>tre r2 y escribimos r2 = q2r2 + r3 con 0 ≤ r3 < r2 y repetimos<br />
el proceso. Dado que la sucesión de restos es decreci<strong>en</strong>te (r1 > r2 > r3 > ...), <strong>en</strong><br />
algún mom<strong>en</strong>to habremos de <strong>en</strong>contrar un resto rn+1 igual a 0. Los dos últimos<br />
pasos podemos escribirlos de la forma rn−2 = qn−1rn−1 + rn con 0 < rn < rn−1, y<br />
rn−1 = qnrn + rn+1 con rn+1 = 0.<br />
Teorema 2.9 En el proceso anterior, rn es el máximo común divisor de a y b.<br />
Además, el máximo común divisor es único.<br />
1 En el contexto informático, efici<strong>en</strong>te quiere decir que, una vez conv<strong>en</strong>i<strong>en</strong>tem<strong>en</strong>te programado,<br />
pueda ser ejecutado por un ord<strong>en</strong>ador <strong>en</strong> un tiempo y utilización de recursos de memoria razonables.<br />
No nos <strong>en</strong>tret<strong>en</strong>dremos <strong>en</strong> discutir qué quiere decir razonable, que sería objeto de la asignatura<br />
Complejidad Computacional u otras.
30 CAPÍTULO 2. DIVISIBILIDAD EN Z<br />
Tras las consideraciones anteriores, podemos escribir el algoritmo de Euclides como<br />
sigue, donde rem(a, b) repres<strong>en</strong>ta el resto de dividir a <strong>en</strong>tre b:<br />
Entrada : a, b ∈ Z<br />
mi<strong>en</strong>tras b = 0, hacer<br />
t ←− |a|<br />
a ←− |b|<br />
b ←− rem(t, a)<br />
salida : a<br />
Pseudo–código del algoritmo de Euclides.<br />
Naturalm<strong>en</strong>te, el algoritmo anterior puede ext<strong>en</strong>derse al cálculo del máximo común<br />
divisor de más de dos <strong>en</strong>teros. Supongamos dados t <strong>en</strong>teros positivos a1, . . . , at y sea<br />
R0 = (a1, . . . , at). Supongamos que i es el índice de la coord<strong>en</strong>ada más pequeña de<br />
R0. En este caso es fácil ver que mcd(a1, . . . , at) es igual a<br />
mcd(rem(a1, ai), . . . , rem(ai−1, ai), ai, rem(ai+1, ai), . . . , rem(at, ai))<br />
Esta idea conduce al sigui<strong>en</strong>te algoritmo.<br />
<strong>en</strong>trada : (a1, a2, . . . , at) ∈ Z t<br />
Inicializar A := (|a1|, |a2|, . . . , |at|)<br />
mi<strong>en</strong>tras A cont<strong>en</strong>ga, al m<strong>en</strong>os, dos coord<strong>en</strong>adas no nulas hacer<br />
Calcular el índice i del m<strong>en</strong>or <strong>en</strong>tero no nulo de A<br />
A ←− (rem(a1, ai), . . . , rem(ai−1, ai), ai, rem(ai+1, ai), . . . , rem(at, ai))<br />
salida : ai<br />
Pseudo–código del algoritmo de Euclides para t <strong>en</strong>teros.<br />
Ejemplo 2.10 Calcular el mcd de 120, 146 y 180. En este caso, se ti<strong>en</strong>e:<br />
mcd(120, 146, 180) = mcd(120, 26, 60) = mcd(16, 26, 8) = mcd(0, 2, 8) =<br />
= mcd(0, 2, 0) = 2.
2.2. ALGORITMO DE EUCLIDES. TEOREMA DE LAMÉ 31<br />
2.2.1. Teorema de Lamé<br />
Examinamos el algoritmo de Euclides sobre una <strong>en</strong>trada (a, b) tomando nota de<br />
coci<strong>en</strong>tes y de restos. Si r0 = a y r1 = b, se ti<strong>en</strong>e:<br />
r0 = q1r1 + r2<br />
r1 = q2r2 + r3<br />
. (2.1)<br />
rn−2 = qn−1rn−1 + rn<br />
rn−1 = qnrn<br />
Hemos probado con anterioridad que rn = mcd(a, b). Notemos, por otro lado, que<br />
el último coci<strong>en</strong>te, qn es mayor o igual que 2 (salvo que n = 1).<br />
D<strong>en</strong>otemos por E(a, b) el número de divisiones que realiza el algoritmo de Euclides<br />
si el input es (a, b). El objetivo es probar una bu<strong>en</strong>a cota superior para E(a, b).<br />
Sea Fn el n–ésimo número de Fibonacci que, recordemos, está definido por F0 = 0,<br />
F1 = 1 y Fn = Fn−1 + Fn−2 si n ≥ 2.<br />
Lema 2.11 Sean a y b <strong>en</strong>teros tales que a > b > 0 y supongamos que E(a, b) = n.<br />
Entonces, a ≥ Fn+2 y b ≥ Fn+1<br />
Demostración.– Utilizaremos la notación de 2.1 y probaremos que r0 ≥ Fn+2 y<br />
r1 ≥ Fn+1 por inducción <strong>en</strong> n.<br />
El <strong>en</strong>unciado es cierto para n = 1. En este caso, el algoritmo de Euclides consta<br />
de una única división, r0 = q0r1 y puesto que r0 > r1, los m<strong>en</strong>ores <strong>en</strong>teros que lo<br />
verifican son r1 = 1 = F2 y r0 = 2 = F3.<br />
Supongamos ahora que el <strong>en</strong>unciado es cierto para i < n; queremos probarlo para n.<br />
El primer paso del algoritmo de Euclides es r0 = q0r1 +r2 y sabemos que E(r1, r2) =<br />
n − 1. Por lo tanto, r1 ≥ Fn+1 y r2 ≥ Fn. Por lo tanto, r0 ≥ r1 + r2 ≥ Fn+2.<br />
A partir del Lema anterior y utilizando que<br />
donde α = 1+√ 5<br />
2<br />
y β = 1−√ 5<br />
2 , se ti<strong>en</strong>e<br />
Fn = αn − βn √ ,<br />
5<br />
Corolario 2.12 Si a > b > 0, E(a, b) < c1 log(u) + c2 − 2 + c3u −1 , donde c1 =<br />
1<br />
log α = 2,08, c2 = log √ 5<br />
log α = 1,67 y c3<br />
1 = √ = 0,93. (log logaritmo natural). Si<br />
5 log α<br />
se escribe la cota anterior <strong>en</strong> términos de la talla binaria de a (es decir, log2 a) se<br />
obti<strong>en</strong>e, redondeando, que<br />
E(a, b) ≤ 1,90 log 2 a − 0,33
32 CAPÍTULO 2. DIVISIBILIDAD EN Z<br />
Demostración.– Supongamos que E(a, b) = n. Por el lema 2.11, sabemos que, <strong>en</strong> ese<br />
caso, a ≥ Fn+2. Entonces,<br />
a ≥ αn+2 − β n+2<br />
√ 5<br />
> αn+2 − 1<br />
√ .<br />
5<br />
En consecu<strong>en</strong>cia, (n + 2) log α ≤ log(1 + a √ 5). Ahora, usando el hecho de que<br />
log(x + 1) = log x + log 1 + 1<br />
<br />
1 1<br />
y la estimación log 1 + < para obt<strong>en</strong>er<br />
x<br />
x x<br />
se obti<strong>en</strong>e el resultado.<br />
(n + 2) log α < log(a √ 5) + 1<br />
a √ 5 ,<br />
Observación 2.13 Queda algo alejado del curso hacer consideraciones sobre la efici<strong>en</strong>cia<br />
de los algoritmos introducidos. Sin embargo, deje el lector que se le ofrezca<br />
un resultado que demuestra bi<strong>en</strong> a las claras las posibilidades del Algoritmo de Euclides.<br />
A partir del resultado anterior se puede probar que el número de operaciones<br />
binarias necesarias para calcular el mcd usando Euclides es<br />
k · (log 2 a)(log 2 b)<br />
Olvidándonos de la constante k, si los <strong>en</strong>teros a y b ti<strong>en</strong><strong>en</strong> talla binaria 10000 (aproximadam<strong>en</strong>te<br />
3000 dígitos <strong>en</strong> base 10), habrá que realizar, más o m<strong>en</strong>os, ci<strong>en</strong> millones<br />
de operaciones binarias. Dado que, por ejemplo, los primeros procesadores P<strong>en</strong>tium<br />
realizaban <strong>en</strong>tre 100 y 112 millones de operaciones binarias por segundo, un ord<strong>en</strong>ador<br />
equipado con uno de dichos procesadores, nos daría la respuesta <strong>en</strong> algo m<strong>en</strong>os<br />
de un segundo.<br />
Por otro lado, si usamos la factorización <strong>en</strong> producto de primos para calcular el<br />
máximo común divisor, la situación no es, ni mucho m<strong>en</strong>os, tan boyante. En la<br />
práctica, el mejor de los algoritmos de factorización conocidos (que utiliza técnicas<br />
matemáticas ciertam<strong>en</strong>te sofisticadas) no puede factorizar, ni aún usando el Super-<br />
Computer de IBM, <strong>en</strong>teros de varios ci<strong>en</strong>tos de dígitos (aunque nadie ha probado<br />
aún que nunca pueda <strong>en</strong>contrarse un algoritmo efici<strong>en</strong>te). Esta dificultad de la factorización<br />
es una de las ideas claves por la que el sistema criptográfico RSA que<br />
estudiaremos más adelante se haya convertido <strong>en</strong> el sistema criptográfico de uso<br />
común.<br />
Por último, señalemos que la falta de una prueba que demuestre que no es posible<br />
<strong>en</strong>contrar un algoritmo efici<strong>en</strong>te para la factorización está estrecham<strong>en</strong>te ligada a<br />
uno de los problemas c<strong>en</strong>trales de la Informática como es la Conjetura de Cook 2 .<br />
2 En la página http://www.claymath.org/prizeproblems/pvsnp.htm del Clay Mathematics<br />
Institute existe información (s<strong>en</strong>cilla descripción del problema, artículo más profundo sobre el<br />
asunto e incluso un vídeo de una charla divulgativa) sobre esta conjetura. De hecho, el Instituto<br />
Clay ofrece un millón de dólares a qui<strong>en</strong> sea capaz de resolver esta conjetura.
2.3. IDENTIDAD DE BÉZOUT. ALGORITMO EXTENDIDO DE EUCLIDES33<br />
2.3. Id<strong>en</strong>tidad de Bézout. Algoritmo ext<strong>en</strong>dido de<br />
Euclides<br />
Definición 2.14 Dados <strong>en</strong>teros a y b y su máximo común divisor d = mcd(a, b),<br />
se d<strong>en</strong>omina id<strong>en</strong>tidad de Bézout a una expresión de la forma<br />
ax + by = d x, y ∈ Z.<br />
El objetivo fundam<strong>en</strong>tal de esta sección, junto a la prueba del Teorema Fundam<strong>en</strong>tal<br />
de la Aritmética, es el demostrar que siempre exist<strong>en</strong> tales <strong>en</strong>teros x e y y <strong>en</strong>contrar<br />
un algoritmo para su cálculo. Pero antes, veamos un ejemplo. Aplicando el algoritmo<br />
de Euclides a a = 180 y b = 146, se ti<strong>en</strong>e la sigui<strong>en</strong>te sucesión de id<strong>en</strong>tidades:<br />
180 = 1 ∗ 146 + 34 (2.2)<br />
146 = 4 ∗ 34 + 10 (2.3)<br />
34 = 3 ∗ 10 + 4 (2.4)<br />
10 = 2 ∗ 4 + 2 (2.5)<br />
4 = 2 ∗ 2 (2.6)<br />
Supongamos que queremos <strong>en</strong>contrar una id<strong>en</strong>tidad de Bézout, es decir, <strong>en</strong>contrar<br />
<strong>en</strong>teros x e y tales que<br />
180 ∗ x + 146 ∗ y = 2<br />
Para ello, podemos volver hacia atrás <strong>en</strong> las id<strong>en</strong>tidades anteriores, es decir, de (2.5)<br />
se ti<strong>en</strong>e<br />
2 = 10 − 2 ∗ 4.<br />
Ahora, de (2.4) podemos despejar 4 y llegar a<br />
De nuevo, usando (2.3) llegamos a<br />
Finalm<strong>en</strong>te, usando (2.2) se ti<strong>en</strong>e<br />
2 = 7 ∗ 10 − 2 ∗ 34.<br />
2 = 7 ∗ 146 − 30 ∗ 34.<br />
2 = −30 ∗ 180 + 37 ∗ 146.<br />
Esta forma de proceder implicaría que para resolver una id<strong>en</strong>tidad de Bézout,<br />
habríamos de aplicar el algoritmo de Euclides (tomando nota de restos y coci<strong>en</strong>tes)
34 CAPÍTULO 2. DIVISIBILIDAD EN Z<br />
y después volver hacia atrás utilizando dichos restos y coci<strong>en</strong>tes. Sin embargo, podemos<br />
organizar los cálculos de manera que esto no sea necesario. Para ello, usaremos<br />
los coci<strong>en</strong>tes para construir xk e yk tales que:<br />
axk + byk = rk (0 ≤ k ≤ n).<br />
De este modo, si k = n, t<strong>en</strong>dríamos resuelto nuestro problema.<br />
Para k = 0, basta tomar x0 = 1 e y0 = 0 y si k = 1, x1 = 0 e y1 = 1. Ahora<br />
supongamos que hemos <strong>en</strong>contrado xk e yk para todo índice 0 ≤ k ≤ s y queremos<br />
calcular xs+1 e ys+1. Se t<strong>en</strong>dría:<br />
rs+1 = rs−1 − rsqs = axs−1 + bys−1 − qs(axs + bys) = a(xs−1 − qsxs) + b(ys−1 − qsys)<br />
Lo que hemos visto es que las sucesiones de <strong>en</strong>teros definidas por:<br />
verifican<br />
x0 = 1, x1 = 0, xk+1 = xk−1 − qkxk<br />
y0 = 0, y1 = 1, yk+1 = yk−1 − qkyk<br />
axk + byk = rk (0 ≤ k ≤ n).<br />
De paso, esta construcción demuestra que:<br />
Teorema 2.15 Para todo par de <strong>en</strong>teros a y b no los dos nulos, exist<strong>en</strong> <strong>en</strong>teros x<br />
e y tales que se verifica la id<strong>en</strong>tidad de Bézout:<br />
ax + by = mcd(a, b)<br />
Ejercicio. Probar que a y b son coprimos si, y sólo si, exist<strong>en</strong> <strong>en</strong>teros x e y tales que<br />
ax + by = 1.<br />
Interpretación matricial del Algoritmo ext<strong>en</strong>dido de Euclides<br />
Llamemos, al igual que antes, r0 = a y r1 = b. Asimismo, consideremos las matrices<br />
<br />
x0<br />
R0 =<br />
⎛<br />
<br />
x1<br />
= I S0 = ⎝ r0<br />
⎞<br />
r1<br />
⎠<br />
y0 y1<br />
x0 x1<br />
y0 y1<br />
Obsérvese que det(R0) = 1. El primer paso <strong>en</strong> el algoritmo de Euclides ext<strong>en</strong>dido<br />
consiste <strong>en</strong> dividir r0 por r1, r0 = r1q1 + r2, sustituir el par (r0, r1) por (r1, r2) y
2.3. IDENTIDAD DE BÉZOUT. ALGORITMO EXTENDIDO DE EUCLIDES35<br />
calcular x2 = x0 − x1q1 e y2 = y0 − y1q1. En consecu<strong>en</strong>cia, podemos p<strong>en</strong>sar que si<br />
llamamos Q1 a la matriz<br />
<br />
0 1<br />
Q1 =<br />
,<br />
1 −q1<br />
se ti<strong>en</strong>e<br />
<br />
x1 x2<br />
R1 =<br />
y1 y2<br />
<br />
⎛<br />
= R0Q1 y S1 =<br />
⎝ r1 r2<br />
x1 x2<br />
y1 y2<br />
⎞<br />
⎠ = S0Q1<br />
Además, es fácil ver que este producto por Q1 consiste, <strong>en</strong> realidad, <strong>en</strong> restar a la<br />
primera columna de S0 la segunda multiplicada por q1 e intercambiar las columnas<br />
de S0. Por otro lado, se ti<strong>en</strong>e que det(R1) = −1, es decir, x1y2 − x2y1 = −1 lo que<br />
implica que mcd(x2, y2) = 1. Este proceso se continúa obt<strong>en</strong>i<strong>en</strong>do matrices<br />
<br />
xk xk+1<br />
Rk =<br />
= Rk−1Qk = R0Q1 · · · Qk<br />
que verifican<br />
⎛<br />
yk yk+1<br />
Sk = ⎝ rk rk+1<br />
xk xk+1<br />
yk yk+a<br />
⎞<br />
y<br />
⎠ = Sk−1Qk = S0Q1 · · · Qk<br />
det(Rk) = (−1) k , axk + byk = rk, axk+1 + bxk+1 = rk+1,<br />
lo que, <strong>en</strong> particular, implica que mcd(xk, yk) = 1. El algoritmo sigue hasta que <strong>en</strong><br />
el lugar (1, 2) de una de las matrices Sk aparezca un cero. De este modo, si <strong>en</strong> el<br />
algoritmo ext<strong>en</strong>dido de Euclides se realizan n divisiones, se t<strong>en</strong>drá<br />
⎛<br />
<br />
xn xn+1<br />
Rn =<br />
= Rn−1Qn y S1 = ⎝ rn<br />
⎞<br />
0<br />
⎠ = Sn−1Qn,<br />
con lo que se ti<strong>en</strong>e:<br />
yn yn+1<br />
xn xn+1<br />
yn yn+1<br />
axn + byn = mcd(a, b), axn+1 + byn+1 = 0, mcd(xn, yn) = mcd(xn+1, yn+1) = 1.<br />
La última de las igualdades se obti<strong>en</strong>e de det(Rn) = (−1) n . En particular se t<strong>en</strong>drá,<br />
. Dicho de otra manera,<br />
si b = 0, que la fracción yn+1<br />
xn+1<br />
|xn+1| =<br />
es reducida e igual a − a<br />
b<br />
|b|<br />
mcd(a, b) e |yn+1| =<br />
|a|<br />
mcd(a, b)
36 CAPÍTULO 2. DIVISIBILIDAD EN Z<br />
De hecho, la construcción anterior no sólo proporciona una prueba del Teorema sino<br />
que nos da un algoritmo para su cálculo. 3 En la forma <strong>en</strong> la que aparece descrito a<br />
continuación, coc(A, B) d<strong>en</strong>ota el coci<strong>en</strong>te de la división euclídea de A por B.<br />
Input : a, b ∈ Z<br />
Inicializar :<br />
⎛ ⎞<br />
a b<br />
S := ⎝ 1 0 ⎠<br />
0 1<br />
while s12 = 0, do<br />
<br />
0 1<br />
Q ←<br />
1 −coc(s11, s12)<br />
S ← S · Q<br />
<strong>en</strong>dwhile<br />
Output : s11, x = s21, y = s31<br />
Algoritmo Ext<strong>en</strong>dido de Euclides.<br />
Obsérvese que como subproducto del algoritmo anterior, se obti<strong>en</strong><strong>en</strong> xn+1 e yn+1<br />
cuya utilidad se verá <strong>en</strong> la resolución de ecuaciones diofánticas lineales<br />
A partir del Teorema 2.15, podemos demostrar la anunciada unicidad de la factorización<br />
de un número <strong>en</strong>tero, pero antes un resultado previo.<br />
Teorema 2.16 Si a|bc y mcd(a, b) = 1, <strong>en</strong>tonces a|c. En particular, si p es primo<br />
y p|ab, <strong>en</strong>tonces p|a o p|b.<br />
Demostración.– Gracias a la id<strong>en</strong>tidad de Bézout sabemos que exist<strong>en</strong> <strong>en</strong>teros x e<br />
y tales que ax + by = 1. Multiplicando por c se ti<strong>en</strong>e c = cax + cby, con lo que a<br />
divide a los dos sumandos a la derecha y, por lo tanto, a c.<br />
A partir del Teorema anterior y pagando un bajo precio, <strong>en</strong> forma de s<strong>en</strong>cillo argum<strong>en</strong>to<br />
inductivo, se puede probar que<br />
Si p es primo y p|a1 · · · ak, <strong>en</strong>tonces p divide a algún ai<br />
Todas estas disquisiciones realizadas sobre la relación <strong>en</strong>tre números primos y divisibilidad<br />
nos pon<strong>en</strong> <strong>en</strong> condiciones de probar la unicidad, ya anunciada, de la<br />
expresión de un número <strong>en</strong>tero como producto de ±1 y números primos.<br />
3 En clase de problemas veremos cómo ext<strong>en</strong>der este algoritmo para más de dos <strong>en</strong>teros.
2.4. ECUACIONES DIOFÁNTICAS LINEALES 37<br />
Teorema 2.17 (Teorema fundam<strong>en</strong>tal de la aritmética) Todo <strong>en</strong>tero positivo<br />
puede expresarse como producto de pot<strong>en</strong>cias no triviales de números primos<br />
n = p α1<br />
1 p α2<br />
2 · · · p αk<br />
k<br />
y, salvo, reord<strong>en</strong>ación de los factores, esta factorización es única.<br />
Demostración del Teorema Fundam<strong>en</strong>tal de la Aritmética.– La exist<strong>en</strong>cia de la factorización<br />
se sigue del Teorema 2.4 y, por lo tanto, sólo queda probar la unicidad.<br />
Sea S el conjunto de <strong>en</strong>teros positivos que admit<strong>en</strong> dos factorizaciones distintas y,<br />
supongamos, por reducción al absurdo, que este conjunto es no vacío. Por la bu<strong>en</strong>a<br />
ord<strong>en</strong>ación de N, sabemos que, <strong>en</strong> ese caso, el conjunto S admite mínimo, digamos<br />
n. Se t<strong>en</strong>drán dos factorizaciones distintas de n:<br />
Es claro que p1 divide a q β1<br />
1 q β2<br />
2 · · · q βs<br />
n = p α1<br />
1 p α2<br />
2 · · · p αk<br />
k<br />
n = q β1<br />
1 q β2<br />
2 · · · q βs<br />
s .<br />
s y, por lo tanto, a alguno de los q βi<br />
i . Aún más, se<br />
t<strong>en</strong>drá que p1 divide a alguno de los qi lo que implica que es igual a alguno de los qi.<br />
Reord<strong>en</strong>ando los qi, podemos suponer que p1 = q1. En consecu<strong>en</strong>cia, se t<strong>en</strong>drá que<br />
n<br />
p1<br />
= p α1−1<br />
1 p α2<br />
2 · · · p αk<br />
k<br />
y<br />
= qβ1−1 1 q β2<br />
2 · · · q βs<br />
s .<br />
Puesto que las factorizaciones de n consideradas eran distintas, t<strong>en</strong>emos dos factorizaciones<br />
distintas del <strong>en</strong>tero positivo n < n, lo que contradice el hecho de que n<br />
p1<br />
sea el mínimo de S.<br />
2.4. Ecuaciones diofánticas lineales<br />
Se llaman ecuaciones diofánticas a aquéllas de las que nos interesan las soluciones<br />
<strong>en</strong>teras. Un caso interesante es de las ecuaciones diofánticas lineales <strong>en</strong> dos variables<br />
aX + bY = c a, b, c ∈ Z (2.7)<br />
Puesto que el caso a = b = 0 no ti<strong>en</strong>e ningún interés, supondremos que (a, b) = (0, 0).<br />
Utilizando el Algoritmo de Euclides ext<strong>en</strong>dido, sabemos <strong>en</strong>contrar una solución si<br />
c = mcd(a, b). Del mismo modo, es obvio <strong>en</strong>contrar una solución si mcd(a, b) divide a<br />
c. Dicho de otra manera, la ecuación diofántica ti<strong>en</strong>e solución si c divide a mcd(a, b).
38 CAPÍTULO 2. DIVISIBILIDAD EN Z<br />
¿Y si mcd(a, b) no divide a c? En este caso, no puede haber solución: si existies<strong>en</strong><br />
<strong>en</strong>teros x e y tales que<br />
ax + by = c,<br />
se t<strong>en</strong>dría que todo factor común de a y de b también lo sería de c. En particular,<br />
el máximo común divisor de a y de b dividiría a c.<br />
Recopilando, hemos demostrado que la ecuación diofántica 2.7 ti<strong>en</strong>e solución si,<br />
y sólo si, c divide a mcd(a, b). De hecho, sabemos cómo <strong>en</strong>contrar una solución:<br />
aplicamos el algoritmo ext<strong>en</strong>dido de Euclides a a y b obt<strong>en</strong>i<strong>en</strong>do x0 e y0 tales que<br />
ax0 + by0 = mcd(a, b). Es claro que ( c<br />
mcd(a,b) x0, c<br />
mcd(a,b) y0) es solución de 2.7. Sin<br />
embargo, hasta ahora no nos hemos preocupado por saber si hay más de una solución<br />
y, <strong>en</strong> el caso de que haya más de una, saber cuáles son todas las soluciones. Para<br />
analizar este problema, estudiemos la ecuación diofántica<br />
aX + bY = 0 (2.8)<br />
por cuanto si (x1, y1) es solución cualquiera de la ecuación diofántica 2.7 y (x0, y0)<br />
solución de 2.8, es fácil ver que (x1 + x0, y1 + y0) es solución de 2.7. Una solución<br />
obvia ( y la más “pequeña”) a la ecuación diofántica 2.8 es<br />
<br />
<br />
b a<br />
, −<br />
,<br />
mcd(a, b) mcd(a, b)<br />
pero también lo son todas las de la forma<br />
<br />
<br />
b<br />
a<br />
t , −t<br />
, con t ∈ Z.<br />
mcd(a, b) mcd(a, b)<br />
Así pues, si (x1, y1) es solución cualquiera de 2.7 el conjunto<br />
<br />
b<br />
{ x1 +<br />
mcd(a, b) t, y1<br />
a<br />
−<br />
mcd(a, b) t<br />
<br />
: t ∈ Z},<br />
es un conjunto de infinitas soluciones de 2.7. ¿Hay más? Para verlo, sea (x, y) una<br />
solución de 2.7. Por lo tanto,<br />
ax1 + by1 = c y<br />
ax + by = c.<br />
Restando, se ti<strong>en</strong>e a(x − x1) + b(y − y1) = 0 y, dividi<strong>en</strong>do por mcd(a, b),<br />
a<br />
mcd(a, b) (x − x1)<br />
b<br />
+<br />
mcd(a, b) (y − y1) = 0. (2.9)
2.5. MÍNIMO COMÚN MÚLTIPLO 39<br />
Ahora, supongamos que b = 0 (si b = 0 y a = 0, haríamos el mismo argum<strong>en</strong>to que<br />
sigue con a). Como<br />
<br />
a<br />
mcd<br />
mcd(a, b) ,<br />
<br />
b<br />
= 1<br />
mcd(a, b)<br />
y<br />
b<br />
mcd(a,b) divide a (x − x1) a<br />
b<br />
, se ti<strong>en</strong>e que<br />
mcd(a,b)<br />
Sustituy<strong>en</strong>do <strong>en</strong> 2.9, se obti<strong>en</strong>e que<br />
b<br />
x − x1 = t , para algún t ∈ Z.<br />
mcd(a, b)<br />
b<br />
y − y1 = −t<br />
mcd(a, b) .<br />
mcd(a,b) divide a (x − x1), es decir,<br />
Los argum<strong>en</strong>tos anteriores prueban que el sigui<strong>en</strong>te resultado es cierto.<br />
Proposición 2.18 Dados <strong>en</strong>teros a, b, c la ecuación diofántica<br />
aX + bY = c<br />
ti<strong>en</strong>e solución si, y sólo si, mcd(a, b) divide a c. En caso de que t<strong>en</strong>ga solución ti<strong>en</strong>e<br />
infinitas, dadas por<br />
<br />
b<br />
{ x1 +<br />
mcd(a, b) t, y1<br />
a<br />
−<br />
mcd(a, b) t<br />
<br />
: t ∈ Z},<br />
donde (x1, y1) es una solución particular cualquiera.<br />
De hecho, hemos <strong>en</strong>contrado un algoritmo para resolver ecuaciones diofánticas de<br />
la forma 2.7, ya que basta <strong>en</strong>contrar una solución particular cualquiera y, para ello<br />
podemos utilizar el algoritmo ext<strong>en</strong>dido de Euclides.<br />
2.5. Mínimo común múltiplo<br />
Definición 2.19 Si a y b son dos <strong>en</strong>teros, un múltiplo común de a y b es un <strong>en</strong>tero<br />
c tal que a|c y b|c. Si a y b son ambos no nulos, exist<strong>en</strong> múltiplos comunes positivos<br />
(por ejemplo |ab|), por lo que la bu<strong>en</strong>a ord<strong>en</strong>ación de N nos asegura la exist<strong>en</strong>cia<br />
de un mínimo común múltiplo, es decir, el m<strong>en</strong>or múltiplo común positivo.<br />
Normalm<strong>en</strong>te, se escribe mcm(a, b).<br />
De hecho, se ti<strong>en</strong>e que el mínimo común múltiplo de a y b es el único <strong>en</strong>tero positivo<br />
m que verifica:<br />
1) a|m y b|m (por ser múltiplo común)
40 CAPÍTULO 2. DIVISIBILIDAD EN Z<br />
2) Si c es un <strong>en</strong>tero que verifica a|c y b|c, <strong>en</strong>tonces, m|c (por ser el m<strong>en</strong>or de los<br />
múltiplos comunes).<br />
El mínimo común múltiplo está estrecham<strong>en</strong>te ligado al máximo común divisor. Esta<br />
ligazón vi<strong>en</strong>e dada por el sigui<strong>en</strong>te resultado.<br />
Teorema 2.20 Sean a y b dos <strong>en</strong>teros. Se ti<strong>en</strong>e<br />
|ab| = mcd(a, b) · mcm(a, b).<br />
Demostración.– Se trata de probar que el <strong>en</strong>tero positivo<br />
m =<br />
|ab|<br />
mcd(a, b)<br />
es el mínimo común múltiplo de a y b, es decir, que verifica las dos propiedades<br />
anteriores.<br />
En primer lugar, es claro que a|m por cuanto mcd(a, b) divide a b y, por lo tanto,<br />
podemos escribir<br />
m = |a| ·<br />
De igual forma puede verse que b|m.<br />
|b|<br />
mcd(a, b) .<br />
Por otro lado, supongamos que c es un <strong>en</strong>tero que es múltiplo común de a y b, es<br />
decir,<br />
Se ti<strong>en</strong>e, <strong>en</strong>tonces que<br />
y, como<br />
c = au para algún <strong>en</strong>tero u y c = bv para algún <strong>en</strong>tero v.<br />
a<br />
mcd(a,b) y<br />
b<br />
mcd(a,b)<br />
Finalm<strong>en</strong>te, se t<strong>en</strong>drá<br />
a<br />
u =<br />
mcd(a, b)<br />
b<br />
mcd(a, b) v<br />
son primos <strong>en</strong>tre sí, que<br />
a<br />
a<br />
v = k<br />
mcd(a, b)<br />
mcd(a,b)<br />
para algún <strong>en</strong>tero k.<br />
ab<br />
c = bv = k para algún <strong>en</strong>tero k.<br />
mcd(a, b)<br />
divide a v, es decir,
2.6. PROBLEMAS PROPUESTOS 41<br />
2.6. Problemas propuestos<br />
Problema 2.1 .- (Expresión de números natural <strong>en</strong> bases distintas de la decimal)<br />
Demostrar que, dado un natural q > 0, todo número natural n puede expresarse de<br />
manera única <strong>en</strong> la forma<br />
akq k + ak−1q k−1 + · · · + a1q + a0,<br />
con 0 ≤ ak < q, donde k el único natural para el que se verifica q k ≤ n < q k+1 .<br />
Problema 2.2 .- Sea<br />
akak−1 . . . a1a0, ai ∈ {0, 1}<br />
la expresión <strong>en</strong> base 2 (binaria) de un cierto número natural. Expresar, <strong>en</strong> base 2,<br />
coci<strong>en</strong>te y resto de la división por 2 de dicho número.<br />
Problema 2.3 .- Si (A, +, ·) es un anillo conmutativo con elem<strong>en</strong>to unidad, un<br />
subconjunto I se llama ideal si<br />
a + b ∈ I para todo a, b ∈ I<br />
x ∈ A y a ∈ I =⇒ xa ∈ I.<br />
(1) Probar que si a1, . . . , an son elem<strong>en</strong>tos cualesquiera del anillo A, el conjunto<br />
(a1, . . . , an) = {a1x1 + a2x2 + . . . + anxn : xi ∈ A}<br />
es un ideal de A. Todo ideal que se puede expresar de esta forma, se dice<br />
finitam<strong>en</strong>te g<strong>en</strong>erado. Si n = 1, se d<strong>en</strong>omina principal.<br />
(2) Probar que <strong>en</strong> Z todo ideal es principal. Un anillo sin divisores de cero y que<br />
verifica esta propiedad se dice dominio de ideales principales.<br />
(3) Sean ahora, (a) y (b) dos ideales de Z. ¿Quién es el m<strong>en</strong>or ideal que conti<strong>en</strong>e<br />
a ambos? ¿Quién es la intersección de (a) y (b)?<br />
Problema 2.4 .- Dados a y b <strong>en</strong>teros no nulos, los podemos escribir <strong>en</strong> la forma<br />
a = ±<br />
n<br />
i=1<br />
p αi<br />
i<br />
, a = ±<br />
n<br />
i=1<br />
p βi<br />
i , αi, βi ≥ 0.<br />
donde los pi son todos los primos que divid<strong>en</strong> a ab. Comprobar que<br />
mcd(a, b) =<br />
n<br />
i=1<br />
p min{αi,βi}<br />
i<br />
y mcm(a, b) =<br />
n<br />
i=1<br />
p max{αi,βi}<br />
i
42 CAPÍTULO 2. DIVISIBILIDAD EN Z<br />
Problema 2.5 .- Para cada uno de los pares de <strong>en</strong>teros sigui<strong>en</strong>tes, calcular el<br />
máximo común divisor utilizando el algoritmo de Euclides:<br />
(i) 34, 21; (ii) 136, 51; (iii) 481, 325; (iv) 8711, 3206; (v) 1134, 1221;<br />
En cada uno de los casos, resuelve la correspondi<strong>en</strong>te id<strong>en</strong>tidad de Bézout.<br />
Problema 2.6 .- El algoritmo de Euclides puede hacerse ligeram<strong>en</strong>te más rápido<br />
si permitimos restos negativos <strong>en</strong> la forma que sigue<br />
ri−1 = riqi + ri+1 con − |ri/2| < ri+1 ≤ |ri/2|.<br />
Por ejemplo, si aplicamos este método para calcular el máximo común divisor de 59<br />
y 49, se ti<strong>en</strong>e<br />
mcd(59, 49) = mcd(49, 10) = mcd(10, −1) = mcd(−1, 0) = 1.<br />
Utilizar este algoritmo, conocido como del mínimo resto, para calcular los máximos<br />
comunes divisores del ejercicio anterior y resolver las correspondi<strong>en</strong>tes id<strong>en</strong>tidades<br />
de Bézout.<br />
Problema 2.7 .- Demostrar las sigui<strong>en</strong>tes propiedades del máximo común divisor.<br />
1.<br />
<br />
a b<br />
Si a y b son pares, mcd(a, b) = 2mcd ,<br />
2 2<br />
2.<br />
<br />
a<br />
<br />
Si a es par y b es impar, mcd(a, b) = mcd , b<br />
2<br />
3.<br />
<br />
|a − b|<br />
Si a y b son impares, mcd(a, b) = mcd , b<br />
2<br />
A partir de las propiedades anteriores, construir un algoritmo para calcular el máximo<br />
común divisor de dos <strong>en</strong>teros realizando únicam<strong>en</strong>te divisiones por 2. (Nota:<br />
Este algoritmo se conoce como algoritmo binario para el cálculo del mcd y es debido<br />
a J. Stein que publicó su resultado <strong>en</strong> 1967).<br />
Problema 2.8 .- Considérese la sigui<strong>en</strong>te variante del algoritmo binario para el<br />
cómputo de mcd(a, b). Asumamos que a y b no son los dos pares.<br />
1) Si a es par, sustituimos (a, b) por (a/2, b).<br />
2) Si b es par, sustituimos (a, b) por (a, b/2).<br />
3) Si a y b son impares, sustituimos (a, b) por a+b<br />
2<br />
<br />
a−b , .<br />
2
2.6. PROBLEMAS PROPUESTOS 43<br />
El algoritmo consiste <strong>en</strong> repetir los pasos (1)-(3) <strong>en</strong> ese ord<strong>en</strong>. Si a o b es cero,<br />
paramos y devolvemos como mcd(a, b) el otro número <strong>en</strong> valor absoluto. Por ejemplo,<br />
para calcular mcd(15, 6) utilizando este algoritmo, se t<strong>en</strong>dría:<br />
(15, 6) → (15, 3) → (9, 6) → (9, 3) → (6, 3) → (3, 3) → (3, 0)<br />
Demostrar que este algoritmo siempre acaba y que la respuesta es correcta. (Indicación:<br />
Para probar que el algoritmo termina, considera la aplicación f(a, b) = a 2 +b 2<br />
y comprueba que cada vez que se da un paso <strong>en</strong> el algoritmo su valor decrece).<br />
Problema 2.9 .- Probar las sigui<strong>en</strong>tes propiedades de la sucesión de Fibonacci:<br />
Dos términos consecutivos de la sucesión son coprimos, es decir,<br />
mcd(Fn−1, Fn) = 1 para n ≥ 1<br />
El mayor natural m<strong>en</strong>or que Fn+2/Fn+1 (escrito ⌊Fn+2/Fn+1⌋) es 1.<br />
El resto de la división de Fn+1 por Fn es Fn−1.<br />
Problema 2.10 .- Descomponer de todas las formas posibles el número racional<br />
100/273 <strong>en</strong> suma de dos fracciones positivas con d<strong>en</strong>ominadores 21 y 13.<br />
Problema 2.11 .- (Algoritmo ext<strong>en</strong>dido de Euclides para t <strong>en</strong>teros) Basándose <strong>en</strong><br />
la interpretación matricial del algoritmo ext<strong>en</strong>dido de Euclides, diseñar un algoritmo<br />
para calcular, dados <strong>en</strong>teros a1, . . . , at, una id<strong>en</strong>tidad de Bézout del tipo<br />
a1x1 + a2x2 + · · · + atxt = mcd(a1, . . . , at).<br />
Aplicar dicho algoritmo a la resolución de ecuaciones diofánticas de la forma<br />
a1X1 + a2X2 + · · · + anXn = b.<br />
Problema 2.12 .- Para cada una de las ecuaciones diofánticas sigui<strong>en</strong>tes, estudiar<br />
si ti<strong>en</strong><strong>en</strong> solución y, <strong>en</strong> su caso, calcular todas las soluciones:<br />
25X + 36Y = 10 ; 40X + 50Y = 3 ;<br />
200X − 1768Y = 8 ; 213X + 1123Y = 18 ;<br />
30X + 1107Y + 3030303Z = 25 ; 10X + 11Y + 20Z = 10 ;<br />
3X + 7Y + 12Z + 21T = 22 ; 2200X + 1221Y − 2332Z + 101101T = 12.
44 CAPÍTULO 2. DIVISIBILIDAD EN Z<br />
Problema 2.13 .- Resolver el sistema de ecuaciones diofánticas lineales:<br />
11X + 3Y + 5Z = 20<br />
3X + 7Y + 10Z = 10<br />
Problema 2.14 .- Supongamos que el máximo común divisor de a y b es un primo<br />
p. ¿Cuáles son los posibles valores del máximo común divisor de a 2 y b? ¿Y del<br />
máximo común divisor de a 3 y b? Si m.c.d(a, b) = p, ¿cuánto vale m.c.d(a 3 , b 3 )?<br />
Problema 2.15 .- Una empresa alemana está replanteándose sus planes de actividad.<br />
Ti<strong>en</strong>e una fábrica <strong>en</strong> España con un millar de empleados españoles y un<br />
c<strong>en</strong>t<strong>en</strong>ar de ejecutivos alemanes y está estudiando una reestructuración de plantilla.<br />
Obviam<strong>en</strong>te sin informar a los sindicatos; aunque estos sospechan que va a haber<br />
algún despido. Un repres<strong>en</strong>tante sindical <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> una fotocopiadora un docum<strong>en</strong>to<br />
del estudio de reestructuración de plantilla (olvidado por error, obviam<strong>en</strong>te)<br />
<strong>en</strong> que se puede leer<br />
El 80.9 por ci<strong>en</strong>to de los que van a ser despedidos está casado.<br />
El 43.5 por ci<strong>en</strong>to de los que van a ser despedidos está pagando hipoteca.<br />
Deducir qué pi<strong>en</strong>san hacer los alemanes con la empresa.<br />
Problema 2.16 .- Un turista estadounid<strong>en</strong>se va a pasar unos días de vacaciones<br />
<strong>en</strong> París, Madrid y Cracovia y desea cambiar 810 dólares <strong>en</strong> euros y <strong>en</strong> zlotys.<br />
Sabi<strong>en</strong>do que el euro se cotiza a 0,90 dólares y un zloty a 0,24, ¿de cuántas formas<br />
posibles puede hacer el cambio si necesita para su estancia <strong>en</strong> Cracovia, al m<strong>en</strong>os,<br />
3000 zlotys?<br />
Problema 2.17 .- Sean dados dos números naturales no nulos a y b. ¿Es posible es-<br />
1<br />
cribir el número racional<br />
como suma de dos racionales de d<strong>en</strong>ominadores<br />
m.c.m.(a,b)<br />
a y b? En caso de respuesta afirmativa, esbozar un algoritmo para el cálculo de<br />
dichos racionales.<br />
Problema 2.18 .- Una cierta empresa fabrica tres productos A, B y C que v<strong>en</strong>de a<br />
590, 410 y 300 euros respectivam<strong>en</strong>te. Calcular cuántas unidades de cada producto<br />
se v<strong>en</strong>dieron <strong>en</strong> un día determinado sabi<strong>en</strong>do que:<br />
La recaudación por la v<strong>en</strong>ta de los productos fue de 32420 euros.<br />
Se v<strong>en</strong>dieron más unidades de A que de B.<br />
El número de unidades de C v<strong>en</strong>didas fue mayor que 83.<br />
Problema 2.19 .- Resolver el sigui<strong>en</strong>te problema: Si un gallo cuesta siete monedas,<br />
una gallina cinco monedas y tres pollos una moneda, ¿de cuántas formas<br />
distintas pued<strong>en</strong> comprarse un total de tresci<strong>en</strong>tas aves (gallos, gallinas y pollos) si<br />
disponemos de quini<strong>en</strong>tas monedas? Escribir cada una de estas formas posibles.
2.6. PROBLEMAS PROPUESTOS 45<br />
Problema 2.20 .- Una compañía aérea ofrece tres tipos de billetes <strong>en</strong> sus vuelos<br />
de Madrid a París. Los billetes de clase prefer<strong>en</strong>te cuestan 150 euros, los de clase<br />
turista con derecho a comida 110 y el resto 67. Si, <strong>en</strong> un vuelo concreto un total<br />
de 100 pasajeros pagaron un total de 10766 euros, ¿cuántos billetes de cada tipo se<br />
v<strong>en</strong>dieron?<br />
Problema 2.21 .- Probar que para cada número natural n, exist<strong>en</strong> siempre n<br />
números compuestos consecutivos.<br />
Problema 2.22 .- Si mn es un cuadrado perfecto y mcd(m, n) = 1, demostrar que<br />
m y n son también cuadrados perfectos.<br />
Problema 2.23 .- (Números de Fermat)<br />
i) Demostrar que si 2 m + 1 es primo, m es una pot<strong>en</strong>cia de 2, es decir, m = 2 n<br />
para algún natural n.<br />
Nota. Los números de la forma 22n + 1 se llaman números de Fermat y si<br />
son primos, se les dice primos de Fermat. Pierre de Fermat (1601-1665) conjeturó<br />
que todos los números de la forma 22n + 1 eran primos, pues pudo<br />
comprobar que eso era cierto para n = 0, 1, 2, 3, 4. Sin embargo, <strong>en</strong> 1732 Leonhard<br />
Euler (1707-1783) demostró que 641 era factor de 232 + 1 = 4294967297.<br />
A fecha de hoy, los únicos primos de Fermat conocidos son los que se correspond<strong>en</strong><br />
con n = 0, 1, 2, 3, 4, aunque no se sabe si hay más.<br />
ii) Demostrar que dos números de Fermat distintos son siempre primos <strong>en</strong>tre sí.<br />
Problema 2.24 .- Un primo de Mers<strong>en</strong>ne es un número primo de la forma 2 n − 1.<br />
Demostrar que si 2 n − 1 es primo, n ha de ser primo.<br />
Nota. En 1644, Mers<strong>en</strong>ne conjeturó que 2 p − 1 era primo para p = 2, 3, 5, 7, 13,<br />
17, 19, 31, 67, 127, 257 y para ningún otro primo m<strong>en</strong>or que 257. En la lista de<br />
Mers<strong>en</strong>ne, había errores por cuanto los números correspondi<strong>en</strong>tes a 67 y 257 no son<br />
primos y le faltaban los correspondi<strong>en</strong>tes a 61 y 89. A fecha de hoy, sólo se conoc<strong>en</strong><br />
38 primos de Fermat, el mayor de los cuales es 2 6972593 −1, número éste que ti<strong>en</strong>e más<br />
de 2 millones de dígitos decimales. Una lista de los primos de Mers<strong>en</strong>ne conocidos<br />
puede verse <strong>en</strong> http://www.utm.edu/research/primes/mers<strong>en</strong>ne.shtml#known.<br />
Problema 2.25 .- Dado un <strong>en</strong>tero positivo n, sea σ(n) = <br />
d la suma de todos<br />
sus divisores positivos. Por ejemplo, σ(27) = 1 + 3 + 9 + 27 = 40. Demostrar que si<br />
mcd(m, n) = 1, σ(nm) = σ(n)σ(m) y <strong>en</strong>contrar una fórmula para calcular σ(n) a<br />
partir de la descomposición de n <strong>en</strong> factores primos.<br />
d|n
46 CAPÍTULO 2. DIVISIBILIDAD EN Z<br />
Problema 2.26 .- Un número perfecto es un <strong>en</strong>tero positivo que es igual a la<br />
suma de sus divisores distintos de él mismo (p.e., 6 es perfecto pues 6 = 1 + 2 +<br />
3). Demostrar que los números perfectos pares son exactam<strong>en</strong>te los de la forma<br />
2 k−1 (2 k −1), con 2 k −1 un primo de Mers<strong>en</strong>ne. (Indicación: Para ver que un número<br />
perfecto par ti<strong>en</strong>e esa forma, escríbelo primero <strong>en</strong> la forma 2 k−1 n0 con n0 impar,<br />
demostrar que n0 es divisible por 2 k − 1 y comprueba que n0 ti<strong>en</strong>e que ser primo<br />
estudiando σ(n0)).<br />
Nota: No se sabe si exist<strong>en</strong> números perfectos impares. Por otro lado, los primeros<br />
números perfectos son: 6 = 2 1 (2 2 − 1), 28 = 2 2 (2 3 − 1), 496 = 2 4 · (2 5 − 1), 8128 =<br />
2 6 · (2 7 − 1), 33550336 = 2 12 (2 13 − 1),...<br />
Problema 2.27 .- Sean a y b números positivos coprimos. Demostrar que para<br />
todo <strong>en</strong>tero positivo n > ab, exist<strong>en</strong> números <strong>en</strong>teros positivos x e y tales que<br />
n = ax + by<br />
A partir de lo anterior, deducir que todo número <strong>en</strong>tero > 11 puede escribirse como<br />
suma de dos números compuestos.