Documente Academic
Documente Profesional
Documente Cultură
Índice general
1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2. Principio de inducción y recurrencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Representación de números naturales. Sistemas de numeración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1. Representación en complementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4. Números enteros. Divisibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5. Ecuaciones diofánticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6. Números primos. Teorema fundamental de la aritmética . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
7. Clases residuales módulo m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
8. Sistemas de congruencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Índice alfabético 68
1. Introducción
Empezamos aquí a estudiar los números naturales. Todos sabemos que al hablar de los números naturales nos estamos refiriendo a los
números 0, 1, 2, . . . . Sin embargo, para un estudio de algunas propiedades de los números naturales esta definición de números naturales
es totalmente insuficiente. Necesitamos fijar una base como punto de arranque, a partir de la cual iremos desarrollando la teoría.
La primera cuestión que nos planteamos es dónde situar el punto de partida. Las posibilidades son varias. Por ejemplo, podemos
empezar postulando la existencia de un conjunto (los números naturales) que satisface una serie de axiomas (los axiomas de Peano). A
partir de estos axiomas podemos definir las operaciones básicas que todos conocemos (suma y producto) y el orden.
También es posible situar el punto de arranque en la teoría de conjuntos, y en el marco de esta teoría construir un conjunto (N) del
cual se demuestra que satisface los axiomas de Peano. En este caso, los axiomas de Peano son una consecuencia de la construcción hecha
de N, mientras que en el caso anterior estos axiomas constituyen el principio de la teoría. Una vez demostrados los axiomas de Peano, se
enlaza con el caso anterior.
Estos planteamientos, sin embargo, no nos interesan en este momento. Nosotros supondremos que tenemos un conjunto, represen-
tado por N, cuyos elementos son los números naturales, y que en este conjunto tenemos definidas dos operaciones (suma y producto), de
las que conocemos sus propiedades básicas. Tenemos definido también un orden de los números naturales, y sabemos que los números
naturales satisfacen el principio de inducción. En la sección siguiente recordaremos todas estas propiedades y axiomas.
También supondremos la existencia de los números enteros (Z), los números racionales (Q), los números reales (R) y los números
complejos (C) con su estructura algebraica y de orden (salvo en C).
iii) Existe en N un elemento, representado por 0 tal que para cada m ∈ N se tiene que m + 0 = m (existencia de elemento neutro para la
suma).
vii) Existe en N un elemento, representado por 1 tal que para cada m ∈ N se tiene que m · 1 = m (existencia de elemento neutro para el
producto).
viii) Si m · n = m · p y m 6= 0 entonces n = p.
x) m ≤ m para todo m ∈ N.
xi) Si m ≤ n y n ≤ m entonces m = n.
xii) Si m ≤ n y n ≤ p entonces m ≤ p,
xvii) Si m · p ≤ n · p y p 6= 0 entonces m ≤ n.
Todo lo dicho anteriormente es igualmente válido para otros conjuntos, como Q+ , R+ , los múltiplos positivos de 21 , etc. Lo que distingue
a N de estos conjuntos es el Principio de inducción.
Principio de inducción:
Este principio es la base de muchas demostraciones en las que intervienen los números naturales. Veamos un ejemplo.
Ejemplo 1. Vamos a demostrar que para todo n ∈ N se verifica que
20 + 21 + · · · + 2n = 2n+1 − 1
Para esto, consideramos el conjunto A cuyos elementos son los números naturales para los que se verifica la propiedad anterior, es
decir,
A = {n ∈ N : 20 + · · · + 2n = 2n+1 − 1}
Claramente se tiene que 0 ∈ A, pues 20 = 20+1 − 1.
Supongamos ahora que n ∈ A, y veamos que n + 1 ∈ A, es decir, supongamos que 20 + 21 + · · · + 2n = 2n+1 − 1 y comprobemos que
20 + 21 + · · · + 2n + 2n+1 = 2n+2 − 1.
En Mathematica, escribiríamos
y nos devolvería
−1 + 21+n
Una demostración basada en el principio de inducción es lo que se conoce como una demostración por inducción.
Si queremos demostrar por inducción que P (n) es cierto para todo n ∈ N (donde P (n) es una propiedad que hace referencia a n),
hemos de realizar dos pasos:
n(n + 1)
1+2+···+n =
2
Hacemos esto por inducción:
Y la respuesta sería
1
2
n(n + 1)
El principio de inducción nos dice que si A es un subconjunto de N que satisface las dos siguientes propiedades:
0∈ A
n ∈ A =⇒ n + 1 ∈ A
Esta formulación del principio de inducción (equivalente a la vista anteriormente) nos permite demostrar una propiedad importante
de los números naturales.
Teorema 3 (Principio de buena ordenación). Sea A un subconjunto de N distinto del conjunto vacío. Entonces A tiene mínimo.
B = {m ∈ N : m ≤ n para todo n ∈ A}
Claramente B 6= N (pues si m ∈ A, m + 1 6∈ B ).
También es cierto que 0 ∈ B (¿por qué?).
Por tanto, debe existir m ∈ N tal que m ∈ B y m + 1 6∈ B
Por pertenecer m a B se tiene que m ≤ n para todo n ∈ A. Queda entonces comprobar que m ∈ A.
Ahora bien, supongamos que m 6∈ A, entonces, para cualquier n ∈ A se tiene que m ≤ n (pues m ∈ B ) y que m 6= n (pues m 6∈ A), luego
m + 1 ≤ n para todo n ∈ A. Por tanto, tendríamos que m + 1 ∈ B , lo cual no es posible.
Deducimos por tanto que m ∈ A, como queríamos.
Hasta ahora hemos usado el principio de inducción para demostrar propiedades referentes a los números naturales. Veamos ahora
como definir funciones con dominio en N.
x0 = 1
x n+1 = a · x n
El comando Rsolve puede usarse para definir sucesiones por recurrencia. En muchos casos, podemos utilizarlo para obtener el
término general de una sucesión. En el caso que nos precede, podemos escribir
xn → a n
2. Definimos la sucesión x n = 2n+1 − 1. En este caso hemos dado explícitamente x n para cada n ∈ N.
Definimos ahora y n como sigue:
y0 = 1
y n+1 = y n + 2n+1
{{y n → −1 + 21+n }}
x1 = 1 x n+1 = x n + n + 1
a) 0! = 1
b) (n + 1)! = (n + 1) · n!
Es fácil comprobar que x n = m · n (hágase). Vemos entonces como definir el producto de números naturales a partir de la suma.
1. 0 ∈ A.
Entonces A = N.
Formalmente, la primera condición no es necesaria, pues para n = 0 la segunda condición afirma ; ⊆ A =⇒ 0 ∈ A, y puesto que la
primera parte es siempre cierta (; ⊆ A), la condición 2 implica que 0 ∈ A. Sin embargo, en la práctica suele ser necesario comprobar que
0 ∈ A.
Notemos también que si la condición 1 se cambia por una de la forma 0, 1, . . . , k ∈ A, la tesis del teorema sigue siendo cierta.
Demostración. Supongamos que A 6= N. Entonces el conjunto B = N \ A es distinto del conjunto vacío. Por tanto, por el principio de buena
ordenación tenemos que B tiene un mínimo. Sea este n 0 . Esto implica que {0, 1, . . . , n 0 − 1} ⊆ A (pues ninguno de sus elementos pertenece
a B ), luego por la condición 2 tenemos que n 0 ∈ A, lo que es imposible, pues n 0 ∈ B . Deducimos entonces que A = N
Este segundo principio puede usarse, tanto para definir sucesiones como para probar propiedades de los números naturales.
Ejemplo 7. Sea x n la sucesión definida mediante
n
X
x0 = 1 x n+1 = xk
k=0
Calculemos una fórmula general para x n . Para esto, hallemos los primeros términos:
x 0 = 1; x 1 = x 0 = 1; x 2 = x 0 + x 1 = 1 + 1 = 2; x 3 = 1 + 1 + 2; x 4 = 1 + 1 + 2 + 4 = 8; x 5 = 1 + 1 + 2 + 4 + 8 = 16.
Parece ser que x n responde a la expresión ½
1 si n = 0
xn = n−1
2 si n ≥ 1
Comprobémosla por inducción, utilizando el segundo principio
x 0 = 1; x 1 = 1; . . . x n = 2n−1
A partir de esto tenemos que x n+1 = 1 + 1 + 2 + · · · + 2n−1 = 1 + (1 + 2 + · · · + 2n−1 ) = 1 + 2n − 1 = 2n , como queríamos.
En esta demostración se ha sustituido (1 + 2 + · · · + 2n−1 ) por 2n − 1, algo que podemos hacer como vimos en el Ejemplo 1
Podemos comprobar que realizar esta demostración usando el primer principio de inducción no es posible. Nuestra hipótesis de
inducción sería que x n = 2n−1 , y a partir de ella, tendríamos que demostrar que x n+1 = 2n . Sin embargo, lo único que podemos hacer es
n
P
Como x n+1 = x k , x 0 = x 1 se tiene que
k=0
n
P n−1
P
x n+1 − x n = xk − x k = x n para n ≥ 1. Escribimos entonces la orden
k=0 k=0
{{x n → 2−1+n }}
Teorema 8 (Algoritmo de la división). Sean a, b ∈ N, con b 6= 0. Entonces existen únicos elementos c, r ∈ N tales que:
a = bc + r y r < b.
Demostración. Sea b 6= 0. Demostremos, en primer lugar, la existencia de c y r para cualquier a ∈ N. Esta demostración la haremos usando
el primer principio de inducción.
Para a = 0 el resultado es cierto. Basta tomar c = r = 0.
Supongamos que a = bc 0 +r 0 con r 0 < b. Entonces a +1 = bc 0 +(r 0 +1). Dado que r 0 < b se tiene que r 0 +1 ≤ b. Pueden ocurrir dos cosas:
Definición 9. Sean a, b ∈ N. Se definen los números naturales a mód b y a div b como los únicos números naturales que satisfacen que
Es decir, a mód b es el resto que resulta de dividir a entre b y a div b es el cociente de dividir a entre b.
13==Quotient[13,3]3+Mod[13,3]
Y la respuesta obtenida es
True
Sabemos que el conjunto de los números naturales es infinito. Sin embargo, para representar un número natural, empleamos única-
mente los símbolos 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9. Con estos símbolos, llamados dígitos, combinados de manera adecuada podemos representar
todos los números naturales. Los números 0 y 1 representan los elementos neutros para la suma y el producto. El resto de los números,
representados por estos dígitos pueden obtenerse fácilmente mediante 2 = 1 + 1, 3 = 2 + 1, y así sucesivamente hasta 9 = 8 + 1. El número
siguiente, es decir 9 + 1 es representado, como todos sabemos como 10.
En una representación de un número natural, el valor de cada uno de estos dígitos depende de la posición que ocupe. Así, en el número
1343 no representa lo mismo el dígito 3 situado a la derecha que el dígito 3 situado entre los dígitos 1 y 4. Analizando algo más el valor de
cada uno de los dígitos, vemos que el valor del 1 que se encuentra a la izquierda es 103 , el valor del 3 que se encuentra inmediatamente a
la derecha es 3 · 102 , el valor del 4 es 4 · 10, mientras que el valor del 3 situado a la derecha es 3. El número representado mediante 1343 es
entonces la suma de todos estos resultados, es decir, 1343 = 103 + 3 · 102 + 4 · 10 + 3.
El origen de la elección de 10 como base de la representación de los números naturales parece ser que se encuentra en el número de
dedos que tenemos en las manos. Nos planteamos ahora qué ocurriría si en lugar de elegir como base a 10 eligieramos cualquier otro
número b. La respuesta viene en el siguiente teorema.
Teorema 11 (Representación de naturales en una base). Sean a, b ∈ N con a 6= 0 y b ≥ 2. Entonces existen únicos m ∈ N y a 0 , a 1 , . . . , a m ∈ N
tales que:
a m 6= 0.
m
ak b k = am b m + · · · + a1 b + a0
P
a=
k=0
a i < b.
Demostración. Haremos la demostración de existencia por inducción en a, usando el segundo principio de inducción. La unicidad se deja
como ejercicio.
El paso inicial consiste en este caso en probarlo para a = 1, 2, . . . , b − 1. En estos casos basta tomar m = 0 y a 0 = a.
Sea ahora a ∈ N, con a ≥ b. La hipótesis de inducción nos garantiza, para cualquier c < a, c 6= 0, que se satisface la tesis del teorema.
Por el Teorema 8 existen c, r tales que a = bc + r y r < b. Además, por ser a ≥ b tenemos que c 6= 0, y al ser b ≥ 2 se tiene que c < a. Le
aplicamos a este número c la hipótesis de inducción y obtenemos la existencia de un número k ∈ N y números c 0 , . . . , c k tales que c k 6= 0,
c = c k b k + · · · + c 1 b + c 0 y c i < b.
Tomamos ahora m = k + 1, a 0 = r y a i = c i −1 para 1 ≤ i ≤ m y se tiene que:
a = bc + r = b(c k b k + · · · + c 1 b + c 0 ) + r = c k b k+1 + · · · + c 1 b 2 + c 0 b + r = a m b m + · · · + a 1 b + a 0
Ejemplo 12. Tomemos, por ejemplo, b = 5 y hallemos los distintos números que nos aparecen en el teorema para diferentes valores de a.
a = 17. Dividimos 17 entre 5; 17 = 5·3+2, luego a 0 = r = 2 y el resto de los números los hallamos de los obtenidos para c = 3. Aquí m = 0+1
y a 1 = 3. Fácilmente se comprueba que 17 = 3 · 5 + 2.
a = 89. Dividimos nuevamente entre 5, y obtenemos 89 = 17 · 5 + 4. Por tanto a 0 = 4 y el resto lo obtenemos a partir de lo hallado para 17.
Por tanto, k = 1 + 1 = 2, a 1 = c 0 = 2 y a 2 = c 1 = 3. Se observa como 89 = 3 · 52 + 2 · 5 + 4.
Si la base es menor que el número que vamos a pasar a dicha base, entonces devolvemos ese número. En caso contrario, llamamos a la
función recursivamente con el conciente del número por la base, y le añadimos detrás el resto de esa división.
pasobase[441,5]
La respuesta sería
{3, 2, 4, 1}
La función Map aplica una función en una lista. Si queremos dejar un argumento fijo, y mover el otro, usaremos el comodín # para
el argumento variable, y al final añadiremos & para indicar que dicha expresión se trata de una función. Así:
Map[pasoabase[#,5]&,{3,17,89,446}]
da como respuesta
{{3}, {3, 2}, {3, 2, 4}, {3, 2, 4, 1}}
Con este comando también podemos ver un número en varias bases:
Map[pasoabase[446,#]&,{5,6,7,8,9,10}]
{{3, 2, 4, 1}, {2, 0, 2, 2}, {1, 2, 0, 5}, {6, 7, 6}, {5, 4, 5}, {4, 4, 6}}
La siguiente función pasa de una base a base 10
pasodesdebase[{}, b_] := 0;
Y ahora
pasodesdebase[{6, 7, 6}, 8]
Definición 13. Sean a, b ∈ N con b ≥ 2. Elegimos b símbolos que se corresponden con los números desde 0 hasta b − 1, e identificamos
estos números con sus símbolos. Supongamos que a = a m b m + · · · + a 1 b + a 0 con a i < b. Diremos entonces que a m a m−1 . . . a 1 a 0 es una
representación del número a en base b, y escribiremos
a = (a m a m−1 . . . a 1 a 0 )b
Observaciones:
1. Cada uno de los símbolos que aparecen en la representación de un número se denomina cifra.
2. Si a = (a m . . . a 1 a 0 )b , podemos añadir ceros a la izquierda y obtenemos también una representación de a. Normalmente, elegiremos
como representación de a aquella para la que la cifra de la izquierda sea distinta de cero (si esto es posible).
4. A la hora de especificar la base lo haremos en base decimal. Si la expresáramos en base b nos quedaría siempre 10.
5. Cuando no se especifique la base en que está expresado un número supondremos que está en base decimal, salvo que el contexto
deje suficientemente claro la base en que base estamos trabajando.
Ejemplo 14.
1. Si queremos expresar el número 446 en base 5, necesitamos una expresión de este número en función de potencias de 5. Sabemos
que 446 = 3 · 53 + 2 · 52 + 4 · 5 + 1, luego
446 = (3241)5
Si analizamos como se obtuvo esta expresión podemos notar que la cifra de la derecha es el resto de dividir 446 entre 5, mientras
que el resto de las cifras resultan de la expresión de 89 = 446 div 5 en base 5, por tanto la segunda cifra por la derecha es el resto de
dividir 89 entre 5, y así sucesivamente.
Por tanto, para expresar un número en base b, lo dividimos entre b y tomamos el resto. El cociente de la división lo dividimos entre
b y volvemos a tomar el resto, y así, hasta que el cociente sea menor que b. En el ejemplo anterior se procedería como sigue:
446 = 5 · 89 + 1
89 = 5 · 17 + 4
17 = 5 · 3 + 2
Tomando los restos y el último cociente tenemos las cifras que forman el número 446 en base 5.
2. Vamos a expresar el número (23143)6 en base 8. Para esto, podemos pasarlo a base decimal y después pasarlo a base 8.
3. Vamos ahora a expresar el número (10101111011000001010100)2 en base 8 y en base 16. En primer lugar lo pasamos a base decimal.
(10101111011000001010100)2 = 222 + 220 + 218 + 217 + 216 + 215 + 213 + 212 + 26 + 24 + 22 = 5746772
Realizamos las divisiones por 8 hasta obtener un cociente menor que 8
5746772 = 8 · 718346 + 4
718346 = 8 · 89793 + 2
89703 = 8 · 11224 + 1
11224 = 8 · 1403 + 0
1403 = 8 · 175 + 3
175 = 8 · 21 + 7
21 = 8 · 2 + 5
5746772 = 16 · 359173 + 4
359173 = 16 · 22448 + 5
22448 = 16 · 1403 + 0
1403 = 16 · 87 + 11
87 = 16 · 5 + 7
10 1
|{z} 0 1} 1
| {z 1 1} 0
| {z 1 1} 0
| {z 0 0} 0
| {z 0 1} 0
| {z 1 0} 1
| {z 0 0}
| {z 101 0111
|{z} | {z } 0000
| {z } 1011 | {z } 0101
| {z } 0100
| {z }
2 5 7 3 0 1 2 4 5 7 B 0 5 4
En general, para pasar un número de base b a base b k basta con agrupar las cifras del número escrito en base b en grupos de k cifras,
empezando por la derecha. Cada uno de estos grupos determina una cifra en base b k .
Recíprocamente, para pasar un número de base b k a base b es suficiente expresar cada cifra del número en base b (completando
con ceros a la izquierda para que nos de k cifras).
(2b + 1)(2b + 3) = b 3 + 3b + 3
Operando nos queda b 3 − 4b 2 − 5b = 0, que podemos comprobar que tiene tres raíces, que son b = −1, b = 0 y b = 5. La solución es
por tanto b = 5.
Los algoritmos que conocemos para sumar, restar, multiplicar o dividir números escritos en base 10 son válidos ahora para realizar
estas operaciones para números escritos en una base b cualquiera.
Así, por ejemplo, para la suma, si m, n ∈ N; m = (m k m k−1 . . . m 1 m 0 )b y n = (n k n k−1 . . . n 1 n 0 )b (hemos supuesto que los dos números
tienen igual número de cifras. De no ser así, añadimos “cero” al que tenga menos), entonces m + n = (c k+1 c k . . . c 1 c 0 )b donde:
- c 0 = (m 0 + n 0 ) m ód b
- c i +1 = (m i +1 + n i +1 + a i ) m ód b, donde a i = (m i + n i + a i −1 ) d i v b (hemos tomado a −1 = 0).
Es fácil comprobar que el número (c k+1 c k . . . c 1 c 0 )b aquí descrito corresponde con la suma de m y n (hágase).
El algoritmo descrito puede extenderse sin dificultad a la suma de tres o más números. Para el caso aquí descrito de dos números, a i
únicamente puede tomar los valores 0 y 1.
En el caso b = 10, lo que hemos dicho es simplemente el método tradicional que usamos para sumar dos (o más) números.
De la misma forma, podemos realizar las operaciones de resta, multiplicación y división para números expresados en una base cual-
quiera b.
Ejemplo 15. Sean x = (36725)8 e y = (740125)8 . Vamos a calcular la suma de x e y.
1 1
3 6 7 2 5 3 6 7 2 5 3 6 7 2 5 3 6 7 2 5
+ 7 4 0 1 2 5 + 7 4 0 1 2 5 + 7 4 0 1 2 5 + 7 4 0 1 2 5
2 5 2 7 0 5 2 7 7 7 0 5 2
Nótese que x = 3 · 84 + 6 · 83 + 7 · 82 + 2 · 8 + 5 = 15829, y = 7 · 85 + 4 · 84 + 1 · 82 + 2 · 8 + 5 = 245845, luego
7 4 0 1 2 5 7 4 0 1 2 5 7 4 0 1 2 5
1 1
− 3 6 7 2 5 − 3 6 7 2 5 − 3 6 7 2 5
2 0 0 1 2 0 0 7 0 1 2 0 0
Y así, tendríamos
{7, 7, 7, 0, 5, 2 }
Ejemplo 16. Para realizar una multiplicación o una división es conveniente tener las tablas de multiplicar. En base 8 éstas serían:
× 0 1 2 3 4 5 6 7
0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7
2 0 2 4 6 10 12 14 16
3 0 3 6 11 14 17 22 25
4 0 4 10 14 20 24 30 34
5 0 5 12 17 24 31 36 43
6 0 6 14 22 30 36 44 52
7 0 7 16 25 34 43 52 61
Sean x = (37142)8 e y = (65)8 . Vamos a calcular el producto x · y, y el cociente y resto que resulta de dividir x entre y.
1 2 4
3 7 1 4 2 3 7 1 4 2 3 7 1 4 2 3 7 1 4 2
× 6 5 × 6 5 × 6 5 × 6 5
2 5 2 3 7 5 2 2 3 3 7 5 2
3 7 1 4 2
3 7 1 4 2
× 6 5
× 6 5
2 3 3 7 5 2
2 3 3 7 5 2
2 7 3 1 1 4
2 7 3 1 1 4
3 1 6 5 1 1 2
3 7 1 4 2 | 6 5
4 · 5 = 24 hasta 31, 5 y nos llevamos 3.
4
3 7 1 4 2 | 6 5
4 · 6 = 30 y 3, 33; hasta 37, 4.
5 4
3 7 1 4 2 | 6 5
Bajamos el 4.
4 5 4
3 7 1 4 2 | 6 5
4 5 4 4 5 La última cifra del cociente es 5. Calculamos el resto y nos da 21.
4 3 2
3 7 1 4 2 | 6 5
4 5 4 4 5
4 3 2
2 1
En caso de que estemos en base 2, los cálculos son mucho más sencillos.
independientemente del signo. De esta forma, en un ordenador no va a ser preciso un circuito lógico para la resta.
Hay dos posibilidades de representar los números: En complemento a b − 1 y en complemento a b.
Para ver las cosas más claras vamos a empezar con algunos ejemplos tomando como base b = 10.
Tomemos por ejemplo x = 75 e y = 28. Su diferencia x − y vale 47.
Para realizar la resta podemos proceder como sigue:
Representamos en complemento a 9 el número y. La representación en complemento a 9 consiste en sustituir cada cifra por lo que
le falta para llegar a 9. Nos quedaría entonces 71.
Le sumamos 1 y despreciamos el acarreo (el 1 de la derecha), y nos queda 47, que es exactamente la diferencia entre x e y.
Supongamos ahora que queremos restar y = 38 a x = 357. Representamos y en complemento a 9, se lo sumamos a 357, y le sumamos 1,
y nos queda 357+61+1 = 419. La diferencia entre x e y vale 319. Para obtener este resultado a partir de la operación hecha en complemento
a 9 tendríamos que restar 1 en la cifra más significativa. Pero es mejor opción escribir los dos números con igual número de cifras, es decir,
x = 357 e y = 038. Su expresión en complemento a 9 es entonces 961, en cuyo caso, la suma a realizar es 357 + 961 + 1 = 1319. Eliminamos
el 1 de la izquierda y obtenemos el resultado de la resta.
¿Que ocurre si queremos restar dos números de forma que el primero sea menor que el segundo? En tal caso, la diferencia es negativa,
luego el resultado que nos dé deberemos interpretarlo como tal.
Pongámonos en el caso de dos números x e y, de dos cifras y tales que x < y. Utilizamos para y su representación en complemento a 9
(es decir, trabajamos con 99− y) y realizamos la suma, que es en este caso x +(99− y) = 99+(x − y) = 99−(y − x), es decir, la representación
en complemento a 9 de −(x − y). Por ejemplo, si x = 15 e y = 38 se tiene que x − y = −23. La representación de y en complemento a 9 sería
61, que al sumárselo a 15 nos da 76, que es la representación en complemento a 9 de 23.
Lo primero que hemos de hacer es si un número queremos sumarlo o restarlo. Si sumamos 75 y 71, ¿queremos sumar esos dos números
o lo que estamos haciendo es restar 28 a 75? Puesto que restar un número es lo mismo que sumar su opuesto, lo que necesitamos es una
forma de representar los números negativos.
Para los números positivos utilizaremos su representación en base b (10 de momento), y para los negativos su representación en
complemento a b − 1. Para distinguirlos, los números positivos deberán empezar por cero, y por tanto, los negativos, empezarán por b − 1.
Así, el 25 será representado como 025, o como 0025, etc., mientras que el −25 será representado como 974, 9974, etc.
En tal caso, si x es un número entero, y su representación en complemento a 9 es b n b n−1 · · · b 1 b 0 , las cifras de la representación en
complemento a 9 de −x son 9 − b n , 9 − b n−1 , · · · 9 − b 1 , 9 − b 0 .
Ejemplo 17. Vamos a hacer algunas sumas y restas con números representados en complemento a 9.
1. x = 45, y = 26.
Para sumarlos, utilizamos la representación en complemento a 9 de ambos, que es 045 y 026, y la sumamos:
0 4 5
+ 0 2 6
0 7 1
que es la representación en complemento a 9 de la suma.
Para efectuar x − y utilizamos la representación en complemento a 9 de x y −y, que son respectivamente 045 y 973, y volvemos
a sumar (y sumamos también 1)
0 4 5
+ 9 7 3
1
1 0 7 1
0 2 6
+ 9 5 4
9 8 0
9 5 4
+ 9 7 3
1
1 9 2 8
x+y x−y −x + y −x − y
0 6 2 9 4 1
0 5 8 0 5 8
+ 9 4 1 + 9 3 7
+ 0 6 2 + 9 3 7
1 1
1 2 0 9 9 5
1 0 0 4 1 8 7 9
En los dos centrales, nos sale la representación en complemento a 9 de la operación indicada, −4 y 4 respectivamente (en el tercero
hay que quitar el 1 de la izquierda). En el primero, aunque no es la representación en complemento a 9 de ningún número (pues no
empieza por 0 ni por 9), podemos intuir que el resultado de la operación es 120 (aunque también podríamos pensar que es 20, si
quitamos el 1 de la izquierda). Pero en el último parece más complicado ver cual es el resultado.
Una opción es escribir los números con una cifra más, añadiendo un cero a la izquierda en el caso de los números positivos, y un 9
en el caso de los negativos.
x+y x−y −x + y −x − y
0 0 6 2 9 9 4 1
0 0 5 8 0 0 5 8
+ 9 9 4 1 + 9 9 3 7
+ 0 0 6 2 + 9 9 3 7
1 1
0 1 2 0 9 9 9 5
1 0 0 0 4 1 9 8 7 9
Y ahora, si eliminamos el 1 de la izquierda en los dos últimos, lo que tenemos es la representación en complemento a 9 de los
resultados de las cuatro operaciones.
Definición 18. Sea b ≥ 2, x un número entero y (a n a n−1 · · · a 1 a 0 )b la representación de un número en base b. Diremos que a n · · · a 1 a 0 es la
representación de x en complemento a b − 1 si:
a n = 0 y x = (a n a n−1 · · · a 1 a 0 )b cuando x ≥ 0.
Observaciones:
2. La representación de 0, de acuerdo con la definición es 00 · · · 0. Sin embargo, también podría usarse como representación de cero
aa · · · a, donde a = b − 1.
3. Con n dígitos podemos representar todos los números comprendidos entre −b n−1 − 1 y b n−1 − 1.
5. Para sumar dos números enteros, podemos tomar sus representaciones en complemento a b − 1 y sumarlas, y añadiendo 1 según
los casos (suma de dos números negativos, o suma de un número positivo y uno negativo de menor valor absoluto).
Un caso especialmente interesante y sencillo es cuando trabajamos en base 2. En tal caso, para obtener la representación en com-
plemento a 1 del número −x basta intercambiar los unos por ceros, y los ceros por unos de la representación en complemento a 1 de
x.
Para evitar los problemas que pueden surgir de la necesidad de sumar o no 1 según los casos, se suele emplear más que la representa-
ción en complemento a b − 1 la representación en complemento a b. En este caso, lo que se hace es ïncluir.el uno en la representación del
número.
Para obtener la representación en complemento a b de un número x:
- si el número es positivo, se toma la representación en base b de dicho número, cuidando que la cifra de la izquierda sea 0.
- si x es negativo, se toma la representación en complemento a b − 1 de x y se le suma 1.
si a n = 0, x = (a n a n−1 · · · a 1 a 0 )b .
si a n = b − 1, x = (a n−1 · · · a 1 a 0 )b − b n .
De esta forma, para obtener la representación en complemento a b de −x basta sustituir cada cifra de la representación de x por lo que
le falta a b − 1, y al resultado sumarle 1. Esto último es cierto salvo para una representación con n + 1 cifras de x = −b n .
Por ejemplo, si x = −16, una representación suya en complemento a 2 es 10000. Para hallar la representación de −x = 16 intercambia-
mos ceros y unos (nos da 01111) y sumamos uno, con lo que nos queda 10000, es decir, la misma representación de x.
Esto podría solucionarse si añadimos una cifra más a la representación de x, es decir, tomamos 110000. En tal caso, nos quedaría
010000.
Vamos a ver algún ejemplo de cómo operar con números en complemento a 10.
Ejemplo 19. Tomamos x = 562 e y = 718. Las representaciones en complemento a 10 de −x y −y son respectivamente 9438 y 9282.
Si sumamos 0718 y 9438, el resultado es 10156. Eliminando el uno de la izquierda obtenemos 0156, es decir, −x + y.
Para el cálculo de −x − y sería conveniente utilizar una cifra más para representar a −x y −y. Sus representaciones serían entonces
99438 y 99282, y su suma es 198720, que tras eliminar el 1 de la izquierda nos da la representación en complemento a 10 de −1280 =
−x − y.
0 1 0 1 0 0 1 0 0 0 1 0 0 0 1 1
+ 1 1 0 1 1 1 0 1 + 1 0 1 0 1 1 1 0
1 0 0 1 0 1 1 1 1 1 1 0 1 0 0 0 1
- 00101111 → (101111)2 = 47 = y − x.
- 11010001 → (1010001)2 − 28 = 81 − 128 = −47 = x − y.
El último resultado podría obtenerse calculando el opuesto. 11010001 → 00101110 → 00101111 → 25 + 23 + 22 + 2 + 1 = 47.
complementoabase[546, 10]
{0, 0, 5, 4, 6}
complementoabase[-718, 10]
{9, 9, 2, 8, 2}
iii) El elemento neutro para la suma en N es también un elemento neutro para la suma en Z.
iv) Para cada a ∈ Z existe un elemento en Z, representado por −a tal que a + (−a) = 0 (Existencia de opuesto para la suma).
vii) El elemento neutro para el producto en N es también un elemento neutro para el producto en Z.
viii) Si a · b = a · c y a 6= 0 entonces b = c.
Nótese que la propiedad iv) implica que la suma es cancelativa. También esta propiedad permite definir la resta o diferencia de dos
números enteros. Dados a, b ∈ Z se define a − b como el número a + (−b).
También en Z hay definida una relación como sigue:
a ≤ b si b − a ∈ N
x) a ≤ a para todo a ∈ Z.
xi) Si a ≤ b y b ≤ a entonces a = b.
xii) Si a ≤ b y b ≤ c entonces a ≤ c.
xvi) a ≤ b y c ≤ 0 implica b · c ≤ a · c.
Teorema 21. Sean a, b ∈ Z con b 6= 0. Entonces existen únicos números enteros c, r tales que a = bc + r y 0 ≤ r < |b|.
A los números c y r que nos da el teorema se les llama respectivamente cociente y resto de la división de a entre b.
Para demostrar el teorema, lo que hay que hacer es distinguir casos según sean a y b mayores o menores que 0 y referirse al caso
conocido (a, b ∈ N). El siguiente ejemplo puede ayudar a analizar los diferentes casos.
Ejemplo 22.
a = 86, b = 15. 86 = 15 · 5 + 11
a = 86, b = −15. 86 = (−15) · (−5) + 11
a = −86, b = 15. −86 = 15 · (−6) + 4
a = −86, b = −15. −86 = (−15) · (−6) + 4
Al igual que se hizo con los números naturales, podemos ahora, dados a, b ∈ Z, con b 6= 0 definir los números a div b y a mód b como
el cociente y el resto de la división de a entre b respectivamente. Nótese que a mód b = a mód − b para cualquier b ∈ Z∗ .
Pasamos ya a definir la relación de divisibilidad en Z.
Definición 23. Dados a, b ∈ Z, se dice que a divide a b, o que b es un múltiplo de a, y escribiremos a|b, si existe c ∈ Z tal que b = a · c.
Hagamos un repaso de las propiedades más importantes, y cuya demostración es casi inmediata.
Propiedades:
Según la definición que acabamos de dar, si a|b existe un elemento c tal que b = a ·c. Este elemento, salvo cuando a = 0 está totalmente
determinado por a y b. Lo denotaremos entonces como ba .
Aunque estamos usando una notación de fracción, en este contexto ba sólo tiene sentido cuando a|b, en cuyo caso es un elemento de
Z.
Definición 24. Sean a, b dos números enteros. Se dice que d es un máximo común divisor de a y b si se satisfacen las dos siguientes
condiciones:
d |a y d |b.
Nótese que la primera condición nos dice que d debe ser un divisor común de a y b. La segunda condición nos dice que de todos los
divisores comunes es el “más grande”.
Nótese también que si d es un máximo común divisor de a y b, también lo es −d , de ahí que hayamos hablado de un máximo común
divisor y no de el máximo común divisor. Además, si d es un máximo común divisor, no hay otro máximo común divisor aparte de −d .
Dados a, b ∈ Z, denotaremos por mcd(a, b) al único máximo común divisor de a y b que pertenece a N.
De la misma forma que se ha definido el máximo común divisor de dos números podría hacerse para tres o más.
La definición del mínimo común múltiplo es semejante a la que acabamos de dar.
Definición 25. Sean a, b dos números enteros. Se dice que m es un mínimo común múltiplo de a y b si se satisfacen las dos siguientes
condiciones:
a|m y b|m.
Las mismas observaciones que se han hecho para el máximo común divisor valen ahora para el mínimo común múltiplo.
Algunas propiedades referentes al máximo común divisor son:
Propiedades:
Se deja como ejercicio enunciar las propiedades correspondientes al mínimo común múltiplo.
Hasta ahora hemos hablado del máximo común divisor, y hemos dado algunas propiedades. Estas propiedades podrían, en un prin-
cipio, no tener sentido, pues el máximo común divisor de dos números podría no existir. Veremos a continuación que el máximo común
divisor de dos números enteros existe, y daremos un método para calcularlo. Comenzamos con el siguiente lema.
Lema 26. Sean a, b ∈ Z. Entonces, para cualquier q ∈ Z se tiene que mcd(a, b) = mcd(b, a − bq).
Demostración. Sea d ∈ Z, y supongamos que d |a y d |b. Entonces d |bq, luego d |b y d |(a − bq).
Por otra parte si suponemos que d |b y d |(a − bq) deducimos que d |bq, luego d |(a − bq + bq) y d |b, es decir, d |a y d |b.
Nótese que lo que hemos demostrado es que para cualquier q ∈ Z, los divisores comunes de a y b, y los divisores comunes de b y a −bq
son los mismos, luego el máximo común divisor de ambas parejas de números será el mismo (si existe).
Corolario 27. Sean a, b ∈ Z, con a 6= 0. Entonces mcd(a, b) = mcd(b, a mód b).
Algoritmo de Euclides para el cálculo del máximo común divisor.
Sean a, b ∈ Z. Puesto que mcd(a, b) = mcd(|a|, |b|), podemos suponer que a, b ∈ N. Comenzamos a efectuar divisiones:
a = b · c1 + r 1
b = r 1 · c2 + r 2
r 1 = r 2 · c3 + r 3
.....................
r i −2 = r i −1 · c i + r i
........................
Obtenemos una sucesión de números naturales r 1 , r 2 , . . ., que es decreciente. Deberá por tanto existir k ∈ N tal que r k 6= 0 y r k+1 = 0.
Tenemos entonces:
a = b · c1 + r 1
b = r 1 · c2 + r 2
r 1 = r 2 · c3 + r 3
.....................
r i −2 = r i −1 · c i + r i
........................
r k−2 = r k−1 · c k + r k
r k−1 = r k · c k+1 + 0
Por el corolario anterior tenemos que los divisores comunes de a y b coinciden con los divisores comunes de r i y r i +1 , para cualquier
i ≤ k. Como el máximo común divisor de r k y 0 existe, y vale r k , deducimos que mcd(a, b) = r k (el último resto no nulo).
Con esto es posible diseñar un algoritmo que calcule el máximo común divisor de dos números enteros a y b.
Algoritmo EUCLIDES(a, b)
Entrada: a, b ∈ Z
Salida: d = mcd(a, b)
(a, b) := (|a|, |b|)
Mientras b 6= 0
(a, b) := (b, a mód b)
Devuelve a
Ejemplo 28. Vamos a calcular el máximo común divisor de 48 y 30. Al ser a y b positivos, no es necesario ejecutar la primera sentencia.
euclides[a_, 0] := Abs[a];
euclides[10,5]
euclides[48,30]
6
Mathematica tiene un comando para el cálculo del máximo común divisor. Tenemos entonces
euclides[48,30]==GCD[48,30]
True
Teorema 29 (Identidad de Bézout). Sean a, b ∈ Z y d = mcd(a, b). Entonces existen u, v ∈ Z tales que d = au + bv.
Demostración. Sabemos que para el cálculo del máximo común divisor de a y b podemos realizar una serie de divisiones
r −1 = r 0 · c 1 + r 1
r 0 = r 1 · c2 + r 2
r 1 = r 2 · c3 + r 3
.....................
r i −2 = r i −1 · c i + r i
........................
r k−2 = r k−1 · c k + r k
r k−1 = r k · c k+1 + 0
donde r −1 = a y r 0 = b. Vamos a demostrar que para cada i tal que −1 ≤ i ≤ k existen u i , v i ∈ Z tales que r i = a · u i + b · v i .
Claramente, para i = −1 e i = 0 el resultado es cierto, pues
r −1 = a · 1 + b · 0 y r 0 = a · 0 + b · 1 (es decir, (u −1 , v −1 ) = (1, 0) y (u 0 , v 0 ) = (0, 1)).
Supongamos que para todo j < i existen u j y v j tales que r j = a · u j + b · v j . Entonces:
r i = r i −2 − r i −1 · c i
= (a · u i −2 + b · v i −2 ) − (a · u i −1 + b · v i −1 ) · c i
= a · (u i −2 − u i −1 · c i ) + b · (v i −2 − v i −1 · c i )
Basta entonces tomar u i = u i −2 − u i −1 · c i y v i = v i −2 − v i −1 · c i
Esta demostración además nos dice como encontrar los coeficientes u y v, que se conocen como coeficientes de Bézout.
Ejemplo 30. Vamos a hallar el máximo común divisor de 1005 y 450, y a expresarlo en función de estos dos números.
Realizamos las divisiones, y a la vez vamos expresando los restos en función de 1005 y 450.
1005 = 450 · 2 + 105 105 = 1005 · 1 + 450 · (−2)
30 = 15 · 2 + 0
De donde deducimos que mcd(1005, 450) = 15, y 15 = 1005 · 13 + 450 · (−29).
Estos datos pueden ser ordenados como sigue:
a b r c u v
1 0
0 1
1005 450 105 2 1 -2
450 105 30 4 -4 9
105 30 15 3 13 -29
30 15 0
Donde los valores iniciales son las dos primeras filas, así como los dos primeros elementos de la tercera fila. Es claro como se obtiene
la tercera y cuarta columnas a partir de las dos primeras. También es claro como un elemento de la primera columna coincide con el
elemento de la segunda columna de la fila superior. De la misma forma se obtiene la segunda columna. Por último, para obtener un
elemento de la columna quinta, se toma el que está en su misma fila y en la columna cuarta, se multiplica por el que está inmediatamente
encima de él y el resultado se le resta al que está dos posiciones encima suya. De forma análoga se completa la sexta columna.
Veamos un algoritmo que recoge todos estos cálculos. Este algoritmo calcula, dados a, b ∈ Z su máximo común divisor d y los coefi-
cientes u y v tales que d = au + bv.
Puesto que en el cálculo de u i es necesario tener presente los valores de u i −1 y u i −2 necesitaremos de una variable x donde almacenar
u i −2 . De la misma forma necesitaremos una variable y para almacenar v i −2 .
Algoritmo BEZOUT(a, b)
Entrada: a, b ∈ Z
Salida: (d , u, v): d = mcd(a, b); d = au + bv
Si b = 0
Devuelve (a, 1, 0);
Fin
(x, u) := (1, 0)
(y, v) := (0, 1)
r := a mód b
Mientras r 6= 0
c := a div b
(x, u) := (u, x − u · c)
(y, v) := (v, y − v · c)
(a, b) := (b, r )
r := a mód b
Devuelve (b, u, v)
Fin
En el caso de que a ó b valieran cero, en el resultado final podría devolver un valor para d negativo. Bastaría entonces multiplicar d , u y v
por −1.
Vamos a implementar este algoritmo. Como necesitamos variables locales, haremos uso del comando Module. En Mathematica no
tenemos n-uplas; usaremos listas para emularlas. Para el “mientras” usamos el comando While. Para 6= usaremos !=.
bezout[a_,0]:={a,1,0}/;a!= 0
bezout[aa_,bb_]:=Module[{d,u,v,x,y,a,b,c},
{x,u}={1,0};
{y,v}={0,1};
{a,b}={aa,bb};
r=Mod[a,b]; (*sabemos que b no es cero*)
While[r!=0 ,
c=Quotient[a,b];
{x,u}={u,x-u c};
{y,v}={v,y-v c};
{a,b}={b,r};
r=Mod[a,b];];
{b,u,v}
]
bezout[1005,450]
gcdextendido[a_, 0] := {a, 1, 0} /; a != 0
gcdextendido[1005,450]
ExtendedGCD[1005,450]
Corolario 31. Sean a, b ∈ Z. Entonces existen u, v ∈ Z tales que 1 = au + bv si, y sólo si, mcd(a, b) = 1.
Demostración. El Teorema 29 nos dice que si mcd(a, b) = 1 entonces existen u, v ∈ Z satisfaciendo la igualdad deseada.
Recíprocamente, supongamos que tenemos u, v ∈ Z tales que 1 = au + bv. Sea ahora d un divisor común de a y b. Entonces:
¾
d |a =⇒ d |au
=⇒ d |(au + bv) =⇒ d |1
d |b =⇒ d |bv
Dos números cuyo máximo común divisor vale 1 se dice que son primos relativos.
Corolario 32. Sean a, m, n ∈ Z. Entonces mcd(a, mn) = 1 si, y sólo si, mcd(a, m) = 1 y mcd(a, n) = 1.
Demostración. Si mcd(a, mn) = 1 existen u, v ∈ Z tales que 1 = au + mnv. Agrupando de manera apropiada tenemos que 1 = au + m(nv)
y 1 = au + n(mv), luego mcd(a, m) = mcd(a, n) = 1.
Recíprocamente, supongamos que mcd(a, m) = mcd(a, n) = 1. Existen entonces u m , v m , u n , v n ∈ Z tales que 1 = au m + mv m y 1 =
au n + nv n , luego
1 = au m + mv m (au n + nv n ) = a(u m + mv m u n ) + mn(v m v n )
lo que nos dice que mcd(a, mn) = 1.
Demostración. Sabemos, por el corolario anterior que existen u, v ∈ Z tal que au + bv = 1, y existe x tal que bc = ax. Entonces:
Utilizaremos este corolario para demostrar que dos números cualesquiera tienen también mínimo común múltiplo.
ab
Proposición 35. Sean a, b ∈ N y d = mcd(a, b). Entonces mcm(a, b) = d .
5. Ecuaciones diofánticas
Nos planteamos en esta sección resolver en Z ecuaciones de la forma
ax + b y = c
donde a, b, c ∈ Z. Fácilmente uno observa que estas ecuaciones no tienen siempre solución. Por ejemplo, la ecuación
8x + 20y = 135
no puede tener solución, pues para cualesquiera x e y números enteros, el miembro de la izquierda es un número par, luego no puede
valer 135. Dicho de otra forma, el miembro de la derecha es múltiplo de 2, y el miembro de la izquierda no lo es.
Para tratar de generalizar este hecho, podemos verlo como que hemos encontrado un número d (d = 2) que verifica que d |8, d |20, pero
d 6 |135.
Si pensamos ahora, por ejemplo en la ecuación 18x + 48y = 100, ese razonamiento para d = 2 no nos sirve, pues todos los coeficientes
que intervienen son múltiplos de 2. Vemos, no obstante que para d = 3 podemos razonar como en el ejemplo anterior (el miembro de la
izquierda es múltiplo de 3 y no así el miembro de la derecha).
Repetir este razonamiento a una ecuación general de la forma ax + b y = c nos lleva a probar con todos los divisores comunes de a y b,
pero dado que en el máximo común divisor de a y b están recogidos todos los divisores comunes de a y b, nos quedamos únicamente con
éste.
Dada la ecuación ax +b y = c, sea d = mcd(a, b). Hemos razonado que una condición necesaria para que tenga solución es que d divida
a c.
La siguiente proposición nos asegura que esta condición es también suficiente.
ax + b y = c
La demostración anterior no sólo nos dice cuando una ecuación de la forma ax + b y = c tiene solución sino que nos proporciona una
forma de encontrar una.
Ejemplo 38. Vamos a encontrar, si es posible, una solución a la ecuación 105x + 465y = 195.
Calculamos el máximo común divisor de 105 y 465.
a b r c u v
1 0
0 1
105 465 105 0
465 105 45 4
105 45 15 2
30 15 0
Vemos que mcd(105, 465) = 15, que divide a 195 (pues 195 = 15 · 13). Completamos entonces la tabla
a b r c u v
1 0
0 1
105 465 105 0 1 0
465 105 45 4 -4 1
105 45 15 2 9 -2
30 15 0
Para resolver ax + b y = c podemos usar la siguiente función. Pasamos los coeficientes en una lista como primer argumento, y luego el
término independiente en otro.
Por ejemplo:
{117, −26}
resuelve[{10, 15}, 3]
No hay solución
{}
Sabemos ya, dada una ecuación de la forma ax +b y = c decidir si tiene o no solución, y en caso afirmativo, encontrar una. Sin embargo,
cuando existe una solución a esta ecuación pueden encontrarse otras más. Así, por ejemplo, tenemos que
195 = 105 · 117 − 465 · 26 195 = 105 · 86 − 465 · 19 195 = 105 · 55 − 465 · 12
195 = 105 · 24 − 465 · 5 195 = 105 · (−7) + 465 · 2 195 = 105 · 148 − 465 · 33
Proposición 39. Sean a, b, c ∈ Z y d = mcd(a, b). Supongamos que x 0 , y 0 es una solución de la ecuación ax + b y = c. Entonces todas las
soluciones de esta ecuación son:
x = x 0 + k db
k ∈Z
y = y 0 − k da
³ ´
Demostración. Se tiene que a x 0 + k d + b y 0 − k da = ax 0 + ak db + b y 0 − bk da = ax 0 + b y 0 + ak db − bk da = c, luego todas las parejas (x, y) de
b
¡ ¢
Ejemplo 40. Una solución de la ecuación 105x + 465y = 195 es x 0 = 117 e y 0 = −26. Todas las soluciones de esta ecuación son entonces
x = 117 + 31k
k ∈Z
y = −26 − 7k
Definición 41. Sea p un número entero distinto de 0, 1 y −1. Se dice que p es irreducible si sus únicos divisores son ±1 y ±p.
Definición 43. Decimos que un número entero p es primo si para cualesquiera enteros a y b tales que p|ab se tiene que p|a o p|b.
Proposición 44. Sea p un número entero distinto de 0, 1 y −1. Entonces p es irreducible si y sólo si es primo.
es falsa, pues hemos encontrado a y b para los que se da la primera parte de la implicación, pero no la segunda. De acuerdo con la
proposición esto nos diría que 6 no es irreducible.
Vamos ya a la demostración.
Demostración. Hagamos en primer lugar la implicación hacia la izquierda. Es decir, suponemos que la implicación p|ab =⇒ p|a ó p|b es
cierta y queremos probar que p es irreducible.
Sea d un divisor de p. Esto implica que p = d x, de donde p|d x. Pueden ocurrir dos cosas: que p divida a d o que p divida a x.
Si p|d , como d |p entonces d = ±p.
Si p|x entonces x = p y para algún y ∈ Z. Se tiene que p = d x = d y p, luego d y = 1 y por tanto d = ±1.
Por tanto, si d es un divisor de p entonces d = ±p o d = ±1, lo que dice que p es irreducible.
Veamos ahora la implicación hacia la derecha.
Supongamos que p es irreducible y que tenemos dos números enteros a y b tales que p|ab (es decir, ab = px).
Puede ocurrir que p divida a a (en cuyo caso no hay nada que probar), o que p no divida a a. Veamos entonces que p|b.
Es claro que mcd(p, a) = 1. El Corolario 33 nos dice que p|b, como queríamos.
Como ejercicio, demuestra que si p es un número primo y tenemos a 1 , a 2 , . . . , a n ∈ Z tales que p|(a 1 a 2 · · · a n ) entonces existe i ∈
{1, 2, . . . , n} tal que p|a i .
Estamos ya en condiciones de dar el teorema fundamental de la aritmética.
Teorema 46 (Teorema fundamental de la aritmética). Sea a ∈ N, a ≥ 2. Entonces, a es primo, o a se expresa de forma única (salvo el orden y
el signo) como producto de números primos.
Observación:
Sea a = 6. Sabemos que a lo podemos poner como producto de primos de la forma 6 = 2 · 3. Pero también podemos ponerlo como
6 = (−2) · (−3). Aunque estrictamente hablando estas dos factorizaciones son distintas, ambas podrían considerarse iguales. De ahí que
digamos que la factorización es única salvo el signo. De la misma forma, las factorizaciones 6 = 2 · 3 = 3 · 2 son iguales salvo el orden.
Demostración. Demostremos en primer lugar la existencia de la factorización. Esto lo haremos haciendo uso del segundo principio de
inducción.
El primer paso consiste en demostrarlo para a = 2. Pero como 2 es primo, el resultado es cierto en ese caso.
La hipótesis de inducción afirma que el resultado es cierto para todo c < a. Bajo esa hipótesis hemos de demostrar el resultado para a.
Si a es primo, ya tenemos que el resultado es cierto.
Si a no es primo, entonces tendrá un divisor que no será ni a ni 1 (ni −a ni −1). Supongamos que es b, y además lo tomamos perte-
neciendo a N. Se tiene entonces que a = bc, y ambos números b y c son menores que a. Por la hipótesis de inducción b se expresa como
producto de primos (b = p 1 · · · p s ) y c también (c = q 1 · · · q s ). Por tanto a = p 1 · · · p s q 1 · · · q s . Es decir, a es producto de números primos.
Demostremos ahora la unicidad. Esta demostración también se hará usando el segundo principio de inducción.
Para a = 2 el resultado es trivialmente cierto.
La hipótesis de inducción dice ahora que todo número c < a se expresa de forma única como producto de números primos.
Supongamos que tenemos dos factorizaciones del número a como producto de números primos positivos:
a = p 1 p 2 · · · p r = q1 q2 · · · q s .
Entonces se tiene que p 1 |(q 1 · · · q s ), y por ser p 1 primo, debe existir algún i tal que p 1 |q i . Reordenamos los primos q 1 , . . . , q s para que el
primo al que divida p 1 sea el primero (es decir, p 1 |q 1 ). Como q 1 es primo, entonces p 1 = q 1 . Tenemos entonces que pa1 = p 2 · · · p r = q 2 · · · q s .
Por hipótesis de inducción, los primos que aparecen en la primera factorización de pa1 son los mismos que aparecen en la segunda.
La factorización de un número como producto de primos permite de forma fácil determinar los divisores de un número. Así, si a =
e e e f f f
y b = p 11 p 22 · · · p r r entonces b|a si, y sólo si, f i ≤ e i .
p 11 p 22 · · · p r r
De esta forma es fácil comprobar que el conjunto
f f f
D(a) = {p 11 p 22 · · · p r r : 0 ≤ f i ≤ e i }
20 30 50 = 1 2 0 30 51 = 5 20 3 1 5 0 = 3 20 31 51 = 15 20 3 2 5 0 = 9 20 32 51 = 45
21 30 50 = 2 21 30 51 = 10 21 3 1 50 = 6 21 31 51 = 30 21 32 50 = 18 21 32 51 = 90
22 30 50 = 4 22 30 51 = 20 22 31 50 = 12 22 31 51 = 60 22 32 50 = 36 22 32 51 = 180
Es decir,
D(180) = {1, 2, 3, 4, 5, 6, 9, 10, 12, 15, 18, 20, 30, 45, 60, 90, 180}
FactorInteger[180]
Divisors[180]
{1, 2, 3, 4, 5, 6, 9, 10, 12, 15, 18, 20, 30, 36, 45, 60, 90, 180}
{{{1, 5}, {3, 15}, {9, 45}}, {{2, 10}, {6, 30}, {18, 90}}, {{4, 20}, {12, 60}, {36, 180}}}
Flatten[%]
{1, 5, 3, 15, 9, 45, 2, 10, 6, 30, 18, 90, 4, 20, 12, 60, 36, 180}
Sort[%] == Divisors[180]
True
También podemos calcular el máximo común divisor y el mínimo común múltiplo de dos números.
e e e f f f
Proposición 48. Sean a, b ∈ N∗ . Supongamos que a = p 11 p 22 · · · p r r y b = p 11 p 22 · · · p r r son las factorizaciones de a y b como producto de
irreducibles. Entonces:
mín{e 1 , f 1 } mín{e 2 , f 2 } mín{e r , f r }
mcd(a, b) = p 1 p2 · · · pr
máx{e 1 , f 1 } máx{e 2 , f 2 } máx{e r , f r }
mcm(a, b) = p 1 p2 · · · pr
Esta proposición puede generalizarse fácilmente para el cálculo del máximo común divisor y/o el mínimo común múltiplo de 3 ó más
números.
Ejemplo 49. Sean a = 350 y b = 1155. Entonces se tiene que a = 2 · 52 · 7 y b = 3 · 5 · 7 · 11. Por tanto
Definición 50. Sean a, b, m ∈ Z. Se dice que a es congruente con b módulo m, y se escribe a ≡ b (mód m) ó a ≡m b, si m|(b − a). Es decir:
Nótese que a ≡ b (mód m) si, y sólo si, a ≡ b (mód − m). Por tanto, al hablar de congruencias módulo m podemos suponer que m ∈ N.
Además, la relación de congruencia módulo 0 es la relación de igualdad (a ≡ b (mód 0) si, y sólo si, a = b) que no nos aporta nada
nuevo. En la relación de congruencia módulo 1 todos los elementos están relacionados con todos los elementos, luego también carece de
interés. Nos centraremos entonces en módulos m que sean mayores que 1.
Ejemplo 51. Claramente, 5 ≡ 17 (mód 4) pues 17 − 5 es múltiplo de 4. De la misma forma 5 ≡ 17 (mód 6). Sin embargo 5 6≡ 15(mód 8) pues
17 − 5 no es múltiplo de 8.
Reflexiva: Dado que 0 = a − a es múltiplo de m tenemos que para cualquier a ∈ Z se verifica que a ≡ a (mód m).
Simétrica: Supongamos que a ≡ b (mód m). Entonces m|(b − a), luego m|(a − b), es decir, b ≡ a (mód m).
Transitiva:
¾
a ≡ b (mód m) =⇒ m|(b − a)
=⇒ m|[(b − a) + (c − b)] =⇒ m|(c − a) =⇒ a ≡ c (mód m)
b ≡ c (mód m) =⇒ m|(c − b)
Como ejercicio se pide probar que a ≡ b (mód m) si, y sólo si, a mód m = b mód m.
Puesto que para cada m la relación ≡m es de equivalencia, podemos considerar el conjunto cociente. Este conjunto será denotado por
Zm . La clase de un número entero a en Zm será denotada por [a]m o simplemente [a].
Veamos a continuación qué conjunto es Zm .
Ejemplo 53.
Comenzemos con el conjunto Z2 . Para ello calculemos las clases de equivalencia.
[r ]m = {a ∈ Z : a mód m = r }
es decir, en la clase de r están los números enteros que al dividir por m da resto r , y puesto que al dividir un número entre m el resto sólo
puede tomar los valores 0, 1, . . . , m − 1 deducimos que
Vamos a continuación a estudiar la estructura algebraica de estos conjuntos. Para ello necesitamos el siguiente lema:
Lema 54. Sean a, b, c, d ∈ Z y m ≥ 2. Entonces:
¾
a ≡ c (mód m)
1. =⇒ a + b ≡ c + d (mód m)
b ≡ d (mód m)
¾
a ≡ c (mód m)
2. =⇒ ab ≡ cd (mód m)
b ≡ d (mód m)
Demostración.
¾
a ≡ c (mód m) =⇒ m|(c − a)
=⇒ m|(c − a + d − b) =⇒ m|(c + d − (a + b))
1. b ≡ d (mód m) =⇒ m|(d − b)
=⇒ a + b ≡ c + d (mód m)
¾
a ≡ c (mód m) =⇒ m|(c − a) =⇒ m|(c − a)b
=⇒ m|[c(d − b) + (c − a)b]
b ≡ d (mód m) =⇒ m|(d − b) =⇒ m|c(d − b)
2.
=⇒ m|(cd − ab)
=⇒ ab ≡ cd (mód m)
Nótese que a partir de este lema se tiene que si [a]m = [c]m , y [b]m = [d ]m entonces [a + b]m = [c + d ]m y [ab]m = [cd ]m . Esto da pie a la
siguiente definición.
Definición 55. Sean a, b ∈ Z y m ≥ 2. Se definen en Zm las operaciones:
[a]m + [b]m = [a + b]m [a]m [b]m = [ab]m
El lema anterior nos asegura que estas definiciones no dependen de los representantes que se elijan para [a]m y [b]m .
Ejemplo 56. Sea m = 9. En Zm se tiene que [5] + [7] = [12] = [3]. Si en lugar de [5] tomamos [23], y en lugar de [7] tomamos [34] se tiene
que [23] + [34] = [57] = [3] (pues 57 − 3 = 9 · 6). Vemos como la elección del representante del primer sumando (5 ó 23) como la elección del
representante del segundo sumando (7 ó 34) no influye en el resultado final de la suma.
De la misma forma, [5] · [7] = [35] = [8], mientras que [23] · [34] = [782] = [8].
Supongamos que tenemos dos números enteros a, b tales que b|a, m ≥ 2 y quisiéramos definir [a] m
[b]m como sigue:
[a]m h a i
=
[b]m b m
[6]
Tomamos m = 8, a = 6 y b = 2. Entonces tendríamos que [2] = [3]. Ahora bien, [6]8 = [14]8 , mientras que [14]
[2] = [7], y claramente [3] 6= [7]
en Z8 . Es decir, el resultado final depende de los representantes elegidos. Esta operación, por tanto, no está bien definida.
Nota: A partir de ahora, dado a ∈ Z, denotaremos por a al elemento [a]m ∈ Zm . En cada momento deberá quedar claro si a representa
un número entero o un elemento de Zm . Así, se tiene que
Zm = {0, 1, 2, . . . , m − 1}
e igualdades como 4 + 6 = 3, 5 = 1 ó 9 = 0 tendrán sentido en un contexto apropiado (la primera igualdad es válida en Z7 , la segunda en Z4
o Z2 y la tercera en Z9 o Z3 ).
Proposición 57. Sea m ≥ 2. Las operaciones suma y producto verifican las siguientes propiedades:
i) a + (b + c) = (a + b) + c
ii) a + b = b + a
iii) a + 0 = a
v) a(bc) = (ab)c
vi) ab = ba
vii) a1 = a
viii) a(b + c) = ab + ac
+ 0 1 2 3 4 · 0 1 2 3 4
0 0 1 2 3 4 0 0 0 0 0 0
1 1 2 3 4 0 1 0 1 2 3 4
2 2 3 4 0 1 2 0 2 4 1 3
3 3 4 0 1 2 3 0 3 1 4 2
4 4 0 1 2 3 4 0 4 3 2 1
+ 0 1 2 3 4 5 · 0 1 2 3 4 5
0 0 1 2 3 4 5 0 0 0 0 0 0 0
1 1 2 3 4 5 0 1 0 1 2 3 4 5
2 2 3 4 5 0 1 2 0 2 4 0 2 4
3 3 4 5 0 1 2 3 0 3 0 3 0 3
4 4 5 0 1 2 3 4 0 4 2 0 4 2
5 5 0 1 2 3 4 5 0 5 4 3 2 1
x_⊕y_:=Mod[x+y, modulo]
x_⊗y_:=Mod[xy, modulo]
Table[i⊕ j/. modulo -> 5, {i, 0, 4}, {j, 0, 4}]// TableForm
0 1 2 3 4
1 2 3 4 0
2 3 4 0 1
3 4 0 1 2
4 0 1 2 3
Table[i⊗ j/. modulo -> 5, {i, 0, 4}, {j, 0, 4}]// TableForm
0 0 0 0 0
0 1 2 3 4
0 2 4 1 3
0 3 1 4 2
0 4 3 2 1
Para los símbolos ⊕ y ⊗ puede teclearse \[CirclePlus] y \[CircleTimes] o bien Esc c + Esc y Esc c ∗ Esc
Definición 59. Sea a ∈ Zm . Se dice que a es una unidad si existe b ∈ Zm tal que a · b = 1.
Ejemplo 60.
2. El elemento 3 ∈ Z5 es una unidad (pues 3 · 2 = 1), mientras que 3 ∈ Z6 no es unidad. Puede verse como en Z5 todo elemento distinto
de cero es una unidad.
Si a ∈ Zm es una unidad, entonces se puede simplificar por a (es decir, ab = ac =⇒ b = c). Razona el por qué.
Como consecuencia de lo anterior, si a es una unidad en Zm , hay un único elemento en Zm que al multiplicarlo por él da 1. Este
elemento se llama inverso de a y se representa por a −1 .
Denotaremos por U (Zm ) al conjunto de todas las unidades de Zm .
Si a, b ∈ U (Zm ), entonces ab ∈ U (Zm ), y (ab)−1 = a −1 b −1 .
Todo lo dicho sobre unidades se puede hacer extensivo a cualquier anillo conmutativo.
Ejemplo 61.
U (Z2 ) = {1} U (Z3 ) = {1, 2} U (Z5 ) = {1, 2, 3, 4} U (Z6 ) = {1, 5} U (Z9 ) = {1, 2, 4, 5, 7, 8}
U (Z) = {1, −1} U (Q) = Q \ {0}
Los inversos de las unidades en Z9 son 1−1 = 1, 2−1 = 5, 4−1 = 7, 5−1 = 2, 7−1 = 4 y 8−1 = 8. Observa como, por ejemplo, 4 · 5 = 20 = 2 es
unidad, y 4−1 · 5−1 = 7 · 2 = 14 = 5 = 2−1 .
unidadcutre[x_,m_]:=MemberQ[Table[Mod[x*i,m],{i,1,m-1}],1]
unidadcutre[4,5]
True
unidadcutre[2,4]
False
La función Select selecciona los elementos de una lista que cumplen una determinada propiedad. De esta forma podemos aprovechar
nuestra función anterior para calcular las unidades de Zm .
unidadescutre[m_]:=Select[Range[0,m],unidadcutre[#,m]&]
unidadescutre[6]
{1, 5}
unidadescutre[9]
{1, 2, 4, 5, 7, 8}
Hemos calculado las unidades en algunos anillos Zm . Hasta ahora, la única forma de ver si un elemento en Zm es unidad es multipli-
carlo por los elementos de Zm y comprobar si el algún caso de 1 ó no.
A la luz de los ejemplos anteriores vamos a comprobar la siguiente proposición.
En el enunciado de esta proposición, las dos primeras veces que hablamos del elemento a hacemos referencia a un elemento de
Zn , mientras que la tercera consideramos a como un número entero. En la demostración que vamos a hacer de esta proposición, también
llamaremos de la misma forma a los elementos de Zn y a los elementos de Z. El contexto nos dirá cual de los dos casos se está considerando.
Nótese que decir a = b (en Zn ) es lo mismo que decir b = a + kn (en Z) para algún k ∈ Z.
Puesto que mcd(a, n) = mcd(a + kn, n), no influye para nada el representante que tomemos para comprobar, de acuerdo con la pro-
posición precedente, si a ∈ Zn es una unidad o no en Zn .
Demostración. Comprobemos la condición necesaria. Supongamos entonces que a es unidad en Zn . Sea u = a −1 , lo que nos dice que
au = 1 (en Zn )), o que 1 = au + kn (en Z). El Corolario 31 nos dice ahora que mcd(a, n) = 1.
En cuanto a la condición suficiente, suponemos que mcd(a, n) = 1. Existen entonces u, v ∈ Z tales que au + nv = 1. Vista esta igualdad
en Zn se tiene que au = 1 (pues n = 0), lo que nos dice que a es una unidad con inverso u.
esunidad[5,19]
True
unidades[m_]:=Select[Range[1,m-1],esunidad[#,m]&]
unidades[9]
{1, 2, 4, 5, 7, 8}
La proposición anterior, junto con su demostración, aparte de darnos una condición necesesaria y suficiente para que un elemento de
Zn tenga inverso, nos da una forma de calcularlo. Basta hacer uso de la identidad de Bézout.
Ejemplo 63. De la igualdad 1 = 11 · 11 + 15 · (−8) deducimos que 11 es una unidad en Z15 y que su inverso es 11.
También deducimos que 15 es una unidad en Z11 , y que su inverso es −8. Puesto que 15 = 4 y −8 = 3 tenemos que 4 es unidad y 4−1 = 3.
Veamos a continuación un algoritmo, basado en el algoritmo BEZOUT para determinar si un elemento de Zn tiene o no inverso, y en
caso afirmativo, calcularlo.
Algoritmo INVERSO(n, a)
Entrada: n, a ∈ Z : n ≥ 2
Salida: u: u = a −1 en Zn (si existe)
(y, v) := (0, 1)
r := n mód a
Mientras r 6= 0
c := n div a
(y, v) := (v, y − v · c)
(n, a) := (a, r )
r := n mód a
Si a 6= 1
Devuelve “No existe inverso”
Fin
Devuelve a
Fin
inverso[a_,m_]:=Module[{d,u,v}, {d,u,v}=bezout[a,m];
If[d==1,Mod[u,m], Print["No existe el inverso de ",a,"módulo",m]]]
inverso[5,19]
inverso[5,10]
PowerMod[5,-1,10]
Ejemplo 64. Vamos a estudiar si 391 tiene inverso en Z1542 , y en caso afirmativo vamos a calcularlo.
n a r c v
0
1
1542 391 369 3 -3
391 369 22 1 4
369 22 17 16 -67
22 17 5 1 71
17 5 2 3 -280
5 2 1 2 631
Luego 391 tiene inverso en Z1542 y éste vale 631.
Inverso[391, 1542]
631
Definición 65. Sea m ≥ 2 Se define ϕ(m) como el número de elementos del conjunto {0, 1, 2, . . . , m − 1} que son primos relativos con m.
La función Length se usa para determinar la longitud de una lista. Si combinamos con Select, es fácil obtener una función ϕ de Euler.
fieulercutre[2]
{1, 2, 2, 4, 4}
Las dos siguientes propiedades son útiles a la hora de calcular el valor de ϕ(m).
La primera propiedad es fácil de justificar. Es fácil ver que mcd(a, p n ) 6= 1 si, y sólo si, p|a. Por tanto, los elementos del conjunto
{1, 2, . . . , p n − 1, p n } que son primos relativos con p son exactamente los que no son múltiplos de p. Puesto que en {1, 2, . . . , p n − 1, p n } hay
exactamente p n−1 múltiplos de p (los del conjunto {p · 1, p · 2, . . . , p · p n−1 }) deducimos que ϕ(p n ) = p n − p n−1 .
La segunda propiedad la demostraremos más adelante (tras el Teorema 73).
Esta segunda propiedad se puede generalizar al siguiente caso:
Si m 1 , m 2 , . . . , m k son números naturales tales que mcd(m i , m j ) = 1 para i 6= j entonces
Ejemplo 67.
e e e e e e e e −1 e e −1 e e −1
ϕ(m) = ϕ(p 11 p 22 · · · p r r ) = ϕ(p 11 ) · ϕ(p 22 ) · · · ϕ(p r r ) = (p 11 − p 11 )(p 22 − p 22 ) · · · (p r r − p r r )
La función First selecciona el primer elemento de una lista. La función FactorInteger da una lista de listas, cada una de ellas con dos
elementos: un primo y el exponente con el que aparece en la factorización de un elemento. Así la ϕ de Euler se puede calcular de la
siguiente forma.
fieuler[12]
fieuler[12] == EulerPhi[12]
True
Teorema 68 (Euler-Fermat). Sea a ∈ Z, m ∈ N∗ tales que mcd(a, m) = 1. Entonces a ϕ(m) ≡ 1 (mód m).
Demostración. Nótese que lo que decir que mcd(a, m) = 1 es equivalente a decir que a ∈ U (Zm ), luego hemos de probar que si a ∈ U (Zm )
entonces a ϕ(m) = 1 (en Zm ).
Consideramos la aplicación f : U (Zm ) → U (Zm ) dada por f (x) = a · x. Claramente f es inyectiva, pues al ser a una unidad se puede
simplificar por a. Por tanto, f es sobreyectiva (pues va de un conjunto finito en sí mismo).
Si U (Zm ) = {x 1 , x 2 , . . . , x ϕ(m) } entonces se tiene que
U (Zm ) = I m( f ) = {a · x 1 , a · x 2 , . . . , a · x ϕ(m) }
Por tanto, x 1 x 2 · · · x ϕ(m) = (ax 1 )(ax 2 ) · · · (ax ϕ(m) ) = a ϕ(m) x 1 x 2 · · · x ϕ(m) , y puesto que todo lo que interviene en el producto son unidades
podemos simplificar y nos queda a ϕ(m) = 1.
Ejemplo 69.
3. Vamos a calcular el resto de dividir 31000 y 41000 entre 7. Es decir, vamos a calcular el valor de 31000 y 41000 en Z7 .
Sabemos que 36 = 1, y como 1000 = 166 · 6 + 4 tenemos que
Nótese que en este caso se tiene que 43 = 1, luego se podría haber hecho
elevamodulo[3, 1000, 7]
PoweMod[3, 1000, 7]
8. Sistemas de congruencias
En esta sección vamos a plantearnos resolver algunas ecuaciones, o sistemas de ecuaciones, con una incógnita, en donde esta incógnita
aparece en una o varias congruencias. Las soluciones, de existir, serán números enteros.
Nos limitaremos a aquellas congruencias en las que la incógnita aparece en expresiones de grado 1. El caso más simple es la congruen-
cia
x ≡ a (mód m)
con a, m ∈ Z, m ≥ 1. Esta ecuación claramente tiene solución. De hecho, tiene infinitas soluciones y éstas son x = a + km : k ∈ Z.
Por ejemplo, la ecuación x ≡ 2 (mód 5) tiene a x = 2 como solución, pero también x = 7, x = 12, x = −3. Todas las soluciones son de la
forma x = 2 + 5k, con k un número entero. Para k = 0, 1, 2, −1 obtenemos las cuatro soluciones que hemos dado.
Dadas dos congruencias, diremos que son equivalentes si ambas tienen las mismas soluciones.
Puesto que las congruencias con las que vamos a trabajar son de grado 1, sólo veremos congruencias de la forma
ax + b ≡ cx + d (mód m)
Fácilmente se ve que esta congruencia es equivalente a (a − c)x ≡ d − b (mód m), por lo que nos limitaremos a congruencias de la
forma ax ≡ b (mód m)
Nuestro primer objetivo es, dada una congruencia de la forma ax ≡ b (mód m), estudiar si tiene o no solución, y en caso afirmativo,
transformarla en una equivalente a ella que sea de la forma x ≡ c (mód n). Una vez hecho esto, ya tenemos las soluciones de la congruencia
de partida.
Veamos a continuación distintas transformaciones que podemos realizar en una congruencia, y que dan lugar a una congruencia
equivalente. Supondremos que partimos de una congruencia de la forma ax ≡ b (mód m)
a 0 x 0 − b 0 = (a + k a m)x 0 − (b + k b m) = ax 0 + k a mx 0 − b − k b m = ax 0 − b + (k a x 0 − k b )m
= km + (k a x 0 − k b )m = (k + k a x 0 − k b )m
Esta propiedad nos permite, dada una congruencia, reducir los coeficientes módulo m, obteniendo una congruencia equivalente
con coeficientes menores. Por ejemplo, la congruencia
29x ≡ 67 (mód 7)
es equivalente a la congruencia
x ≡ 4 (mód 7)
a b
Demostración. Sea x 0 una solución de ax ≡ b (mód m). Entonces ax 0 − b = km, luego d x0 − d = km
d , luego x 0 es solución de
a
d
x ≡ db (mód m
d
)
La otra parte se demuestra de forma análoga.
Esta propiedad también permite reducir los coeficientes de las congruencias. Así, por ejemplo, las congruencias
son equivalentes.
Demostración. Es fácil comprobar que toda solución de ax ≡ b (mód m) es solución de cax ≡ cb (mód m) (si ax 0 − b es múltiplo
de m también lo es c ax 0 − cb). Esto es cierto, aún sin que mcd(c, m) = 1.
Sea ahora d tal que d c ≡ 1 (mód m). Este tal d existe. Basta tomar el inverso de c en Zm , que existe pues mcd(c, m) = 1. Se tiene ahora
que toda solución de c ax ≡ cb (mód m) es solución de d cax ≡ d cb (mód m), que tiene las mismas soluciones que ax ≡ b (mód m)
(ver propiedad 1).
Esta propiedad se suele aplicar junto con la propiedad 1, para simplificar congruencias. Por ejemplo, si tenemos la congruencia
6x ≡ 16 (mód 17)
podemos multiplicar por 3 los coeficientes a y b, ya que mcd(3, 17) = 1. Obtenemos entonces la congruencia
que es equivalente a la de partida. Por la propiedad primera, tenemos que esta congruencia es equivalente a
x ≡ 14 (mód 17)
7x ≡ 5 (mód 12)
Vemos como x = 5 es solución de la segunda congruencia (14 · 5 − 10 es múltiplo de 12), pero no es solución de la primera (7 · 5 − 5 no
es múltiplo de 12).
4. Si c es un divisor común de a y b, y mcd(c, m) = 1, entonces las congruencias ax ≡ b (mód m) y ac x ≡ bc (mód m) son equivalentes.
Proposición 70. Sean a, b, m ∈ Z, con m ≥ 2. Entonces la congruencia ax ≡ b (mód m) tiene solución si, y sólo si, mcd(a, m)|b.
Demostración. Supongamos que la congruencia tiene solución. Sea x 0 una tal solución. Entonces ax 0 −b = km para algún k ∈ Z. Entonces
la pareja (x 0 , −k) es una solución a la ecuación diofántica ax + m y = b. La Proposición 37 nos dice que mcd(a, m)|b.
Recíprocamente, supongamos que mcd(a, m)|b. Entonces la ecuación ax + m y = b tiene solución. Sea (x 0 , y 0 ) una tal solución. En ese
caso x 0 es una solución de ax ≡ b (mód m).
A la hora de resolver una congruencia de la forma ax ≡ b (mód m) podemos proceder como sigue:
Reducimos a y b módulo m. Este paso no es necesario, pero puede facilitar los cálculos.
Se comprueba si mcd(a, m)|b. Si la respuesta es negativa, entonces la congruencia no tiene solución. Si la respuesta es afirmativa,
podemos dividir toda la congruencia por mcd(a, m) (ver propiedad 2).
Hemos transformado la congruencia en una de la forma ax ≡ b (mód m), pero ahora se tiene que mcd(a, m) = 1.
Multiplicamos ambos miembros de la congruencia por u. Por la propiedad 3 obtenemos una congruencia equivalente, y ésta adopta
la forma x ≡ c (mód m).
1. La congruencia 2x ≡ 3 (mód 4) no tiene solución, pues mcd(2, 4) = 2, que no divide a 3. Claremente, para cualquier valor de x, 2x es
par, luego 2x − 3 es impar, y un número impar no puede ser múltiplo de 4.
2. En cambio, la congruencia 4x ≡ 2 (mód 6) sí tiene solución, pues mcd(4, 6) = 2 y 2|2. Dividimos entonces todo por 2 y obtenemos
la congruencia 2x ≡ 1 (mód 3). Puesto que 2−1 = 2 (en Z3 ) la congruencia es equivalente a x ≡ 2 (mód 3), cuyas soluciones son
x = 2 + 3k.
3. Vamos a resolver la congruencia 48x ≡ 25 (mód 15). En primer lugar, reducimos módulo 15. La congruencia nos queda
3x ≡ 10 (mód 15). Dado que mcd(3, 15) = 3, y éste no divide a 10 la congruencia no tiene solución.
5. Vamos a resolver la ecuación diofántica 48x + 21y = 75. Para ello planteamos la congruencia
6. Consideramos la congruencia 6x ≡ 12 (mód 27). Se tiene que x = 11 es solución de esta ecuación, pues 6·11−12 = 54 que es múltiplo
de 27.
Si dividimos ambos miembros por 3 obtenemos 2x ≡ 4 (mód 27). En este caso tenemos que 11 no es solución, pues 2 · 11 − 4 = 18
que no es múltiplo de 27.
7. Obviamente, si partimos de la congruencia 2x ≡ 4 (mód 27) y multiplicamos ambos miembros por 3 obtenemos una congruencia
que no es equivalente.
Algoritmo CONGRUENCIA(a, b, m)
Entrada: a, b ∈ Z, m ∈ N : m ≥ 1
Salida: (c, n): x ≡ c (mód n) y ax ≡ b (mód m) son equivalentes.
a := a mód m
b := b mód m
(d , u, v) := B E ZOU T (a, m)
Si b mód d 6= 0
Devuelve “No tiene solución”
Fin
(a, b, m) := (a div d , m div d , m div d )
c := a · u mód m
Devuelve (c, m)
Fin
No tiene solución
Nos planteamos a continuación como resolver sistemas de congruencias con una sola incógnita. Puesto que toda congruencia que
tenga solución es equivalente a una de la forma x ≡ a (mód m) nos planteamos resolver un sistema de la forma
x ≡ a 1 (mód m 1 )
x ≡ a 2 (mód m 2 )
············
x ≡ a p (mód m p )
Una solución del sistema es un número entero que es simultáneamente solución de todas las congruencia.
Ejemplo 72.
1. El sistema de congruencias
x ≡ 2 (mód 6)
x ≡ 5 (mód 9)
tiene a x = 14 como una solución, pues 14 − 2 es múltiplo de 6 y 14 − 5 es múltiplo de 9.
2. El sistema
x ≡ 2 (mód 6)
x ≡ 6 (mód 9)
no tiene solución, pues si x ≡ 6 (mód 9) se tiene que x ≡ 0 (mód 3), mientras que si x ≡ 2 (mód 6) entonces x ≡ 2 (mód 3).
El siguiente teorema nos da una condición suficiente para que un sistema de congruencias tenga solución.
Teorema 73 (Teorema chino del resto). Sean a 1 , a 2 , . . . , a p ∈ Z, y m 1 , m 2 , . . . , m p ∈ N∗ . Supongamos que mcd(m i , m j ) = 1 para i 6= j . Entonces
el sistema de congruencias
x ≡ a 1 (mód m 1 )
x ≡ a 2 (mód m 2 )
············
x ≡ a p (mód m p )
tiene solución. Además, si a es una solución, dicho sistema es equivalente a la congruencia
x≡a (mód M )
p
Q
donde M = mi .
i =1
Antes de hacer la demostración del teorema, comprueba que si a, m 1 , m 2 , . . . m p ∈ Z y mcd(a, m 1 ) = mcd(a, m 2 ) = · · · = mcd(a, m p ) = 1
entonces mcd(a, m 1 m 2 · · · m p ) = 1.
M Q
Demostración. Sea M i = m = mj.
i
j 6=i
Se tiene entonces que mcd(m i , M i ) = 1. Por el Teorema 29, existen u i , v i ∈ Z tal que m i u i + M i v i = 1. Es claro entonces que
luego
es decir,
m 1 |(b − a), m 2 |(b − a), . . . , m p |(b − a),
lo que es equivalente a que mcm(m 1 , m 2 , . . . , m p )|(b − a). Y como mcm(m 1 , m 2 , . . . , m p ) = M , lo que tenemos es que M |(b − a), es decir,
b = a + K m. Por tanto, todas las soluciones del sistema de congruencias son de la forma a + K m, las mismas soluciones que tiene la
congruencia x ≡ a (mód M ).
Nótese que el teorema chino del resto, lo que nos dice es que la aplicación
f : ZM → Zm1 × Zm2 × · · · × Zm p
dada por
f (x) = (x mód m 1 , x mód m 2 , . . . , x mód m p )
es biyectiva (realmente, lo que dice es que es sobreyectiva, pero al tener los dos conjuntos el mismo cardinal eso es suficiente para ser
biyectiva).
Nos centramos en el caso p = 2. Es fácil ver (Corolario 32) que la aplicación f induce una biyección
Por tanto, los dos conjuntos, dominio y codominio, tienen el mismo cardinal. Deducimos entonces que
si mcd(m 1 , m 2 ) = 1.
Ejemplo 74. Consideramos el sistema:
x ≡ 1 (mód 2)
x ≡ 2 (mód 5)
x ≡ 3 (mód 7)
Es claro que mcd(2, 5) = mcd(2, 7) = mcd(5, 7) = 1. Entonces tomamos M 1 = 5 · 7 = 35, M 2 = 2 · 7 = 14 y M 3 = 2 · 5 = 10.
1 = 2 · 18 + 35 · (−1) =⇒ v 1 = −1
1 = 5 · 3 + 14 · (−1) =⇒ v 2 = −1
1 = 7 · 3 + 10 · (−2) =⇒ v 3 = −2.
Por tanto, podemos tomar a = 1 · 35 · (−1) + 2 · 14 · (−1) + 3 · 10 · (−2) = −123.
El sistema de partida es equivalente a la congruencia x ≡ −123 (mód 70), que a su vez es equivalente a x ≡ 17 (mód 70). Las soluciones
son entonces
x = 17 + 70k
Nótese que podríamos haber tomado v 1 = 1, v 2 = 4 y v 3 = 5, en cuyo caso nos habría salido a = 297, que también es solución
(297 ≡ −123 (mód 70)).
En un ejemplo anterior hemos estudiado dos sistemas con dos congruencias en los que mcd(m 1 , m 2 ) 6= 1. En un caso el sistema tiene
solución y en el otro no.
Ejemplo 75. Consideramos la aplicación f : Z18 → Z2 × Z9 dada por f (x) = (x mód 2, x mód 9).
f (0) = (0, 0) f (1) = (1, 1) f (2) = (0, 2) f (3) = (1, 3) f (4) = (0, 4) f (5) = (1, 5)
f (6) = (0, 6) f (7) = (1, 7) f (8) = (0, 8) f (9) = (1, 0) f (10) = (0, 1) f (11) = (1, 2)
f (12) = (0, 3) f (13) = (1, 4) f (14) = (0, 5) f (15) = (1, 6) f (16) = (0, 7) f (17) = (1, 8)
que claramente es una biyección, mientras que si definimos f : Z18 → Z3 × Z6 de la misma forma obtenemos
f (0) = (0, 0) f (1) = (1, 1) f (2) = (2, 2) f (3) = (0, 3) f (4) = (1, 4) f (5) = (2, 5)
f (6) = (0, 0) f (7) = (1, 1) f (8) = (2, 2) f (9) = (0, 3) f (10) = (1, 4) f (11) = (2, 5)
f (12) = (0, 0) f (13) = (1, 1) f (14) = (2, 2) f (15) = (0, 3) f (16) = (1, 4) f (17) = (2, 5)
El teorema chino del resto nos proporciona una condición suficiente para que un sistema de congruencias tenga solución, y en caso
afirmativo nos proporciona una forma de hallarla, como acabamos de ver. Sin embargo, cuando el sistema no se ajusta a las hipótesis del
teorema no tenemos ninguna herramienta para determinar si tiene o no solución, y en caso de que la tenga, para resolverlo.
Vamos a desarrollar un método para resolver sistemas de congruencias, independientemente de que satisfagan o no las hipótesis del
teorema chino. En caso de que el sistema no tenga solución, lo detectaremos en el desarrollo del proceso.
El método consiste en resolver en primer lugar la primera congruencia (trivial).
Se introduce la solución en la segunda, y se halla la solución del sistema formado por las dos primeras congruencias.
Se introduce en la tercera congruencia y se vuelve a resolver.
El proceso continúa, bien hasta que terminemos con todas las congruencias, bien cuando lleguemos a una congruencia que no tiene
solución.
Veamos algunos ejemplos.
1.
x ≡ 1 (mód 2)
x ≡ 2 (mód 5)
x ≡ 3 (mód 7)
Calculamos 273636 en Z4 .
En ese caso se tiene que 27 = 3, y como ϕ(4) = 2 entonces 32 = 1, luego 33636 = 1.
Calculamos 273636 en Z25 .
En este caso hay que calcular 23636 . Dado que ϕ(25) = 20 y 3636 ≡ 16 (mód 20) lo que hemos de calcular es 216 , que puede ser
calculado como sigue:
Resolvemos el sistema
x ≡ 1 (mód 4)
x ≡ 11 (mód 25)
x = 1 + 4k 1 , de donde 1 + 4k 1 ≡ 11 (mód 25), es decir, 4k 1 ≡ 10 (mód 25). Multiplicamos por 19 y nos queda k 1 ≡ 15 (mód 25)
de donde k 1 = 15 + 25k. Finalmente sustituimos:
Nótese que empleando este método es indiferente que las congruencias estén expresadas de la forma x ≡ b (mód m) o de la forma
ax ≡ b (mód m).
El siguiente algoritmo utiliza esta idea para resolver sistemas de congruencias.
Algoritmo SISTEMA(p, (a 1 , b 1 , m 1 ), . . . , (a p , b p , m p ))
Entrada: a, b ∈ Z, m ∈ N : m ≥ 1
p ∈N: p ≥2
a1 , . . . , ak , b1 , . . . , bk ∈ Z
m 1 , . . . , m k ∈ N∗
(c, n) := CONGRUENCIA(a 1 , b 1 , m 1 )
Desde k = 2 hasta p
(a k , b k ) := (a k n, b k − a k c)
(u, v) := CONGRUENCIA(a k , b k , m k )
(c, n) := (c + nu, nv)
Devuelve (c, n)
Fin
No tiene solución
2+6Null
17
17
Índice alfabético
divisor, 27 sucesión, 6
identidad de Bézout, 31
inverso, 48