07.05.2013 Views

Cap´ıtulo 2 Divisibilidad en Z - IMERL

Cap´ıtulo 2 Divisibilidad en Z - IMERL

Cap´ıtulo 2 Divisibilidad en Z - IMERL

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!