Está en la página 1de 80

————————————————————————————————————————————————

Universidad Nacional de Salta


Facultad de Ciencias Exactas
Departamento de Matemática

ARITMÉTICA ELEMENTAL

APUNTES DE CÁTEDRA
MARZO DE 2006

JORGE YAZLLE

————————————————————————————————————————————————
Índice general

Capítulo 1. PRINCIPIO DE INDUCCIÓN Y PRINCIPIO DE BUENA ORDENACIÓN 3


1. Ligero repaso de lógica proposicional 3
2. Conjuntos inductivos. Dos formas del Principio de Inducción 7
3. El Principio del Buen Orden (PBO) y el Principio del Contraejemplo Más Chico (PCMC) 9
4. Equivalencia entre los cuatro principios 10
5. Aplicación a la demostración de proposiciones 11
6. Algunas propiedades del conjunto de los números naturales 15

Capítulo 2. EL CONJUNTO DE LOS NÚMEROS ENTEROS. DIVISIBILIDAD 17


1. La notación algorítmica 17
2. Los números enteros 21
3. La división de números naturales 22
4. La división de números enteros 26
5. Números primos y compuestos 29
6. Algunas curiosidades 34

Capítulo 3. MÁXIMO COMÚN DIVISOR. MÍNIMO COMÚN MÚLTIPLO 37


1. Máximo común divisor 37
2. Mínimo común múltiplo 44
3. Ecuaciones diofantinas lineales 46

Capítulo 4. EL TEOREMA FUNDAMENTAL DE LA ARITMÉTICA 49


1. Factorización de números naturales: existencia y unicidad 49
2. Algunas consecuencias del Teorema Fundamental 52
3. Ternas pitagóricas 54

Capítulo 5. CONGRUENCIAS 57
1. Congruencia módulo m 57
2. Propiedades generales de las congruencias 58
3. Ecuaciones de congruencia 63
4. Aspectos algebraicos de la congruencia: aritmética modular 66

Apéndice A. USO DEL SOFTWARE “MAPLE” 73

1
Capítulo 1

PRINCIPIO DE INDUCCIÓN Y PRINCIPIO DE BUENA


ORDENACIÓN

En nuestra vida diaria, a través de la observación, podemos detectar hechos que ocurren con cierta frecuencia,
y que nos mueven a sacar conclusiones. El sol ha salido ya tantas veces, una por cada mañana que hemos vivido,
que ni remotamente se nos ocurre que mañana no va a salir. Si tiro hacia arriba, en forma perfectamente vertical,
este ladrillo en este descampado, mejor que me corra so riesgo de perder mi cabeza, pues sé que el ladrillo, tarde
o temprano, va a regresar. Lo he visto muchas veces...
Hacemos lo que el diccionario de la Real Academia Española llama inducción. En realidad, tal palabra tiene
varios significados, y el que nos interesa aquí es el siguiente: “Extracción, a partir de determinadas observaciones
o experiencias particulares, del principio general que en ellas está implícito”. Suena a que hay algo experimental
en el proceso de inducción: deduzco algo general a partir de lo que experimento. Y, pensándolo bien, así es.
Pero el objetivo de este capítulo no es el estudio de la inducción, sino de la inducción matemática.
¿Qué es, pues, la inducción matemática? Es un procedimiento riguroso para probar propiedades matemáticas
relativas al conjunto de números naturales. No hay nada experimental en el método, como veremos. Por el
contrario, es una poderosa herramienta que nos ayuda en las demostraciones. ¿Demostraciones de qué? Bueno,
demostraciones de propiedades que tal vez hemos obtenido por inducción en el sentido experimental (sí, damas
y caballeros... se puede experimentar en la matemática).
Por ejemplo, la seño mandó al niño Karlitos a sumar los números del 1 al 100. Fastidiado por la tarea que
le acababan de dar, pensó cómo podría ahorrarse trabajo. Observó que
1 = 1 = 1·2
2
1 + 2 = 3 = 2·3
2
1 + 2 + 3 = 6 = 3·4
2
1 + 2 + 3 + 4 = 10 = 4·5
2
1 + 2 + 3 + 4 + 5 = 15 = 5·6
2

y se dio cuenta de que, en esos casos analizados, la suma de los n primeros números naturales es n(n+1) 2 . Y
así como el sol va a salir mañana en base a que viene saliendo todos estos días, ¿será que 1 + 2 + · · · + 100 =
100·101
2 = 5.050, evitando así el buen Karl la tediosa suma ordenada por la tirana?1 Más generalmente, ¿será que
1+2+· · ·+n = n(n+1)2 cualquiera sea el natural n? La fórmula 1+2+· · ·+n = n(n+1)
2 fue obtenida por inducción
(en el sentido de la R.A.E.). Pero necesitamos algo que fidedignamente –rigurosamente, más bien– nos muestre
que anda bien para todo n natural, no sólo para los primeros casos. Para eso viene a nuestro auxilio el método
de inducción matemática, cuyo estudio es el objeto de este capítulo. Para entrar en tema, ofrecemos primero un
somero repaso de cuestiones básicas de la lógica proposicional, sobre la cual se fundan las demostraciones que
queremos estudiar.

1. Ligero repaso de lógica proposicional


Una proposición es un enunciado acerca del cual tiene sentido preguntarse si es verdadero o falso en su con-
texto. Típicamente, una proposición asevera algo, y ese algo, en su contexto, puede ser verdadero o falso. En este
1Karl Friedrich Gauss (1777 - 1855), enorme matemático alemán, siendo apenas un niño recibió la consigna, por parte de su
profesor, de sumar los números 1 a 100. No procedió por inducción, sino que acomodó dos veces los números 1 a 100 en dos filas,
en una de ida y en otra de vuelta, como sigue:
1 + 2 + 3 + ··· + 99 + 100
100 + 99 + 98 + ··· + 2 + 1
−−− −−− −−− −−− −−−
101 + 101 + 101 + ··· + 101 + 101
resultando así 100 columnas, cada una de las cuales, sumada, da 101. Sumar los resultados de esas 100 columnas corresponde a
sumar dos veces los números 1 a 100. Luego,
100 · 101
1 + 2 + 3 + · · · + 99 + 100 = = 5.050
2
Gauss notó también que un razonamiento parecido andaría muy bien si se suman los números 1 a n, cualquiera sea n ∈ N.
3
4 1. PRINCIPIO DE INDUCCIÓN Y PRINCIPIO DE BUENA ORDENACIÓN

curso, estamos interesados principalmente en aseveraciones referidas a los números naturales (N = {0, 1, 2, 3, . . .})
y enteros (Z = {. . . , −3, −2, −1, 0, 1, 2, 3, . . .}). Simbolizamos a las proposiciones con letras minúsculas (posible-
mente con subíndices): p, q, r, s1 , t20 , etc. Si p es una proposición verdadera, decimos que “el valor de verdad de p
es verdadero” (simbolizado v(p) = V ); en caso contrario, decimos “el valor de verdad de p es falso” (simbolizado
v(p) = F ).

1.1. Proposiciones compuestas. A partir de proposiciones dadas, pueden construirse otras propo-
siciones, denominadas proposiciones compuestas, empleando conectivos lógicos (negación, conjunción,
disyunción, implicación, doble implicación, y combinaciones de todos ellos). Interesa entonces averiguar el va-
lor de verdad de la proposición compuesta según el valor de verdad de cada una de las proposiciones que se
utilizaron en la construcción de la compuesta, y los distintos casos que pueden presentarse se resumen en una
llamada tabla de verdad asociada a la proposición compuesta que se esté analizando. El sentido común y el
uso del lenguaje cotidiano son de ayuda invalorable para entender el porqué de los valores de verdad de una
proposición compuesta.
1.1.1. Negación. Si p es una proposición, su negación, simbolizada ∼ p y leída “no p”, es también una
proposición, cuyo valor de verdad es siempre distinto que el de p. Es decir, si v(p) = V , es v(∼ p) = F , y si
v(p) = F , es v(∼ p) = V . Todo esto se resume en la siguiente tabla de verdad:
p ∼p
V F
F V
1.1.2. Conjunción. Si p y q son proposiciones, su conjunción, simbolizada p∧q y leída “p y q”, es también
una proposición, cuyo valor de verdad es verdadero únicamente en el caso en que p y q sean ambas verdaderas;
si una es falsa (o ambas lo son), la conjunción es una proposición falsa. He aquí su tabla de verdad, mostrando
todos los casos que pueden presentarse:
p q p∧q
V V V
V F F
F V F
F F F
La palabra “pero” también expresa una conjunción. Por ejemplo, la proposición “soy pobre pero feliz”, aún con
una connotación de oposición, expresa que “soy pobre” y también que “soy feliz”. Por eso, su simbolización podría
ser p ∧ q, donde p es “soy pobre” y q es “soy feliz”.
1.1.3. Disyunción. Si p y q son proposiciones, su disyunción, simbolizada p ∨ q y leída “p o q”, es también
una proposición, cuyo valor de verdad es falso únicamente en el caso en que p y q sean ambas falsas; si una es
verdadera (o ambas lo son), la disyunción es una proposición verdadera. La tabla de verdad es, en este caso:
p q p∨q
V V V
V F V
F V V
F F F
1.1.4. Implicación. Dadas dos proposiciones p y q, se puede construir una nueva proposición, simbolizada
p ⇒ q y leída “Si p, entonces q”. Tal proposición se denomina implicación, y expresa el hecho de que a partir
del conocimiento que nos entrega la proposición p, puede deducirse la proposición q. Será falsa sólo en el caso
en que, siendo p verdadera, sea q falsa. La tabla de verdad correspondiente es, entonces:
p q p⇒q
V V V
V F F
F V V
F F V
Otras formas de leer p ⇒ q:
1. Si p, q.
2. q si p.
3. p implica q.
4. p sólo si q.
5. p es condición suficiente para q.
6. q es condición necesaria para p.
1. LIGERO REPASO DE LÓGICA PROPOSICIONAL 5

En una implicación p ⇒ q, p se llama antecedente, premisa o hipótesis, y q se llama consecuente, con-


clusión o tesis. Debe observarse que si el antecedente es falso, la implicación es verdadera. Interpretado, esto
nos dice que no podemos sacar conclusiones fiables a partir de premisas falsas.
Dada una implicación con antecedente p y consecuente q, se pueden construir otras implicaciones, que se
denominan implicaciones asociadas a p ⇒ q. Ellas son:
Recíproca: q ⇒ p
Contraria: ∼ p ⇒∼ q
Contrarrecíproca: ∼ q ⇒∼ p
La propia implicación p ⇒ q recibe, en este caso, el nombre de implicación directa. Es destacable que la
directa y la contrarrecíproca siempre tienen el mismo valor de verdad. Esto tendrá consecuencias a la hora de
querer demostrar la veracidad de ciertas implicaciones.
Una implicación p ⇒ q expresa que si ocurre p, entonces ocurre q. Negar esto quiere decir que ocurra p pero
no ocurra q, es decir, p∧ ∼ q. Veamos la siguiente tabla de verdad que muestra que, en cada caso, el valor de
∼ (p ⇒ q) es el mismo que el de p∧ ∼ q:
p q ∼q p∧ ∼ q p⇒q ∼ (p ⇒ q)
V V F F V F
V F V V F V
F V F F V F
F F V F V F
1.1.5. Doble implicación o equivalencia lógica. Dos proposiciones p y q se dicen equivalentes, simbolizado
p ⇔ q, si ambas tienen igual valor de verdad. En realidad, p ⇔ q es otra proposición cuya tabla de verdad es:
p q p⇔q
V V V
V F F
F V F
F F V
La doble flecha sugiere que p ⇒ q y que q ⇒ p, como efectivamente ocurre. Es decir,
(p ⇔ q) ⇐⇒ (p ⇒ q ∧ q ⇒ p)
De allí que ⇔ reciba también el nombre de doble implicación. Indistintamente, una doble implicación se lee
de cualquiera de las siguientes formas:
1. p es equivalente a q.
2. p si, y sólo si, q.
3. p es condición necesaria y suficiente para q.
Hay unas cuantas equivalencias lógicas famosas que son de mucha utilidad:
p∧p ⇐⇒ p p ∨ (q ∧ r) ⇐⇒ (p ∨ q) ∧ (p ∨ r)
p∨p ⇐⇒ p ∼ (p ∧ q) ⇐⇒ (∼ p) ∨ (∼ q)
∼ (∼ p) ⇐⇒ p ∼ (p ∨ q) ⇐⇒ (∼ p) ∧ (∼ q
p∧q ⇐⇒ q∧p ∼ (p ⇒ q) ⇐⇒ p ∧ (∼ q)
p ∧ (q ∧ r) ⇐⇒ (p ∧ q) ∧ r (p ⇒ q) ⇐⇒ (∼ p) ∨ q
p∨q ⇐⇒ q∨p (p ⇒ q)  ⇐⇒ (∼ q ⇒∼ p) 
p ∨ (q ∨ r) ⇐⇒ (p ∨ q) ∨ r p ⇒ (q ∨ r) ⇐⇒ (p∧ ∼ q) ⇒ r
p ∧ (q ∨ r) ⇐⇒ (p ∧ q) ∨ (p ∧ r)

1.2. Formas proposicionales y cuantificadores. Expresiones como “x es argentino” no pueden ser


calificadas como verdaderas o falsas, si es que x no está especificado. x está actuando como una variable. Cuando
se lo sustituya por algún ente concreto (por ej. “Pelé”), se transformará en proposición (“Pelé es argentino”).
Expresiones como ésta, en las que aparecen variables dando vueltas, se llaman formas proposicionales, o
predicados, y se simbolizan con un nombre de proposición seguido de la variable, puesta entre paréntesis
(similar a la notación empleada para las funciones). Por ejemplo, a “x es argentino” se la puede simbolizar
como p(x). Debe haber un conjunto universal de referencia, del cual se puedan sacar valores para x (en nuestro
ejemplo anterior, podría ser el conjunto de todos los varones de este mundo). Puede haber más de una variable
en una forma proposicional, por ejemplo q(m, n) podría ser “m > 2 ∧ n < 4” en el universo de los números
naturales.
Hay dos formas de convertir a una forma proposicional p(n) en proposición:
1. Sustituir la variable por algún valor concreto del conjunto universal.
2. Anteponerle un cuantificador. Los cuantificadores vienen en dos sabores:
6 1. PRINCIPIO DE INDUCCIÓN Y PRINCIPIO DE BUENA ORDENACIÓN

a) Universal: ∀n, p(n). Se lee “para todo n, p(n)”. Esta proposición será verdadera cuando p(n) sea
verdadera para cualquier sustitución de n por un elemento del conjunto universal.
b) Existencial: ∃n : p(n). Se lee “existe n tal que p(n)”. Es verdadera cuando existe al menos una
sustitución de n (por un elemento del conjunto universal) que hace que la correspondiente p(n) sea
verdadera.
Observación: si una forma proposicional contiene más de una variable, se debe antepo-
ner un cuantificador por cada variable. Por ejemplo: ∀m, ∃n : p(m, n), o ∀m, ∀n, p(m, n) (si,
como en el último caso, el cuantificador es el mismo, y si m y n se mueven ambas en el mismo conjunto
universal, es costumbre abreviar diciendo ∀m, n, p(m, n), o ∃m, n : p(m, n), pero que quede claro que
esto es sólo una abreviatura: implícitamente, hay dos cuantificadores en estos ejemplos).
¿Cómo se obtiene el valor de verdad de una proposición del estilo ∀n, p(n)? Según lo dicho arriba, para demostrar
que es falsa basta con encontrar un valor para n tal que la correspondiente p(n) resulte falsa. Un n con esas
características se denomina contraejemplo. Si la proposición fuese verdadera, hay que mostrar que p(n) es
verdadera para todos los n posibles. Si el conjunto universal en el que se mueve n fuese finito, podríamos
demostrar la veracidad de la proposición verificando que p(n) es verdadera caso por caso. Pero si el conjunto
universal fuese infinito, jamás terminaríamos de probar todos los casos (y aclaremos que no alcanza con probar
con “unos cuantos n”). Una técnica es seleccionar n0 arbitrario (es decir, representando a cualquier elemento del
conjunto universal) y ver que p (n0 ) es verdadero. Entonces, una demostración de la veracidad de ∀n, p(n) puede
típicamente comenzar con “Sea n0 un elemento cualquiera del conjunto universal...” y terminar con “Habiendo
deducido que p (n0 ) es verdadera, y siendo n0 arbitrario, se concluye la veracidad de ∀n, p(n)”. Más adelante,
veremos métodos de decisión en el caso particular en que el universo de trabajo es N.
Muchas veces se dará el caso en que el universal es U pero nosotros queremos expresar que un cierto
predicado p(n) se cumple para un cierto subconjunto A de U . Podemos hacer esto de dos formas equivalentes:
∀n ∈ A, p(n) 
∀n, n ∈ A ⇒ p(n)
En la última, al no especificar a qué conjunto pertenece n, se sobreentiende que es al conjunto universal U . Sin
embargo, lo que se afirma es que, bajo la premisa de que n ∈ A, se cumple p(n). A los efectos de la veracidad, no
interesan los n que no estén en A, pues para ellos la expresión n ∈ A ⇒ p(n) es verdadera. De allí la equivalencia
entre ambas formas.
¿Cómo se obtiene el valor de verdad de una proposición del estilo ∃n : p(n)? Si es verdadera, una manera
es mostrar al menos un n0 del conjunto universal tal que p (n0 ) resulte verdadera. Para demostrar que es falsa,
una técnica puede ser mostrar que su negación es verdadera. ¿Negación de una proposición con cuantificadores?
¿Cómo es éso?
1.2.1. Negación de proposiciones con cuantificadores. Negar que “para todo n, p(n)” puede hacerse muy
fácil y mecánicamente: “no es cierto que para todo n, p(n)”. Si lo pensamos un poco, esto quiere decir que hay
al menos un n para el cual no se satisface p(n), es decir, “existe n tal que ∼ p(n)”. Es lo que dice el sentido
común. En símbolos: 
∼ ∀n, p(n) equivale a ∃n :∼ p(n)
Negar que “existe n tal que p(n)” es lo mismo que decir que “ningún n satisface p(n)”, o, equivalentemente, que
“todos los n no satisfacen p(n)” (esta última forma no es muy usada en el lenguaje coloquial, y no debe confun-
dirse con “no todos los n satisfacen p(n)”, que corresponde a la negación de una proposición con cuantificador
universal). En definitiva: 
∼ ∃n, p(n) equivale a ∀n :∼ p(n)
El mecanismo para negar una proposición con cuantificador es fácil de recordar: se cambia el cuantificador y se
niega la forma proposicional.
¿Y si hay más de un cuantificador? Lo mejor es ir por partes. Por ejemplo, si queremos negar que ∃n :
∀m, ∃z : p(m, n, z), podemos proceder paso a paso así:

∼ ∃n : ∀m, ∃z : p(m, n, z)
∀n, ∼ ∀m, ∃z : p(m, n, z) 
∀n, ∃m :∼ ∃z : p(m, n, z)
∀n, ∃m : ∀z, ∼ p(m, n, z)
Y ya está, en la última línea tenemos la negación deseada. Podríamos también haber procedido mecánicamente:
cambiamos los cuantificadores y negamos la forma proposicional.
1.3. Demostración de implicaciones. Dada una proposición del tipo p ⇒ q, en donde p y q son a su
vez proposiciones (posiblemente con cuantificadores), interesa ver de qué manera podemos analizar su valor de
verdad. Si el antecedente p fuese falso, la demostración ya está lista: la implicación es verdadera. Pero lo más
frecuente es encontrarse con implicaciones en las que el antecedente es verdadero, y a partir de ello se desea
probar la veracidad del consecuente. Es lo que pasa en los teoremas que nos han enseñado: se supone verdadera
2. CONJUNTOS INDUCTIVOS. DOS FORMAS DEL PRINCIPIO DE INDUCCIÓN 7

la (o las) hipótesis, y, por aplicación del razonamiento y de propiedades valederas, debe demostrarse que la
tesis es verdadera. Cuando se hace así, se dice que se ha empleado el método directo de demostración de
implicaciones.
Ahora bien, sabemos que la contrarrecíproca de una implicación tiene el mismo valor de verdad que la directa.
Entonces, demostrar la veracidad de p ⇒ q es lo mismo que demostrar la de ∼ q ⇒∼ p, que puede hacerse por
el método directo. Para eso, se supone ∼ q verdadera y debe concluirse que ∼ p es verdad. O, equivalentemente,
se supone q falsa y debe probarse que p es falsa. Si se lo logra, la implicación queda demostrada por el método
indirecto. En resumidas cuentas, por este método se parte de la falsedad del consecuente y debe arribarse a la
falsedad del antecedente.
Otro método para demostrar que p ⇒ q es verdadera: mostrar que su negación p∧ ∼ q es falsa. Para eso,
se puede arrancar suponiendo la veracidad de p y de ∼ q, y por manipulación legítima debe arribarse a alguna
contradicción. Si lo logramos, hemos demostrado la implicación por el método del absurdo.
Finalmente, unas palabras para la demostración de una doble implicación del tipo p ⇔ q. Hay que demostrar
que p ⇒ q y que q ⇒ p. Muchas veces conviene considerar la contrarrecíproca de esta última, y entonces la
doble implicación queda demostrada a través de los siguientes dos pasos:
1. suponiendo p verdadera, se deduce que q es también verdadera, y
2. suponiendo p falsa, se deduce que q es también falsa.

2. Conjuntos inductivos. Dos formas del Principio de Inducción


En la Teoría de Números que aprenderemos en este curso, es frecuente toparse con afirmaciones del estilo
“∀n ∈ N, p(n)”, en donde p(n) es un predicado en la variable natural n, e interesa averiguar su valor de verdad.
Conforme a lo que sabemos de proposiciones cuantificadas, la afirmación con el cuantificador universal será falsa
si p(n) es falsa al menos para un n natural, y verdadera si p(n) es verdadera cualquiera sea el natural n. En otras
palabras, si designamos por P al conjunto de todos los naturales n tales que p(n) es verdadera, la afirmación
será cierta si y sólo si P = N. Esto nos lleva a preguntarnos, entonces, bajo qué condiciones un subconjunto P
de números naturales, especificado por comprensión, es precisamente N. Es decir, dado P ⊂ N, ¿cómo decidir
si P = N? Claro que nuestra primera reacción puede ser buscar algún natural que no satisfaga el requisito de
pertenencia a P . ¿Qué pasa si, tras probar con muchos n, no lo encontramos? ¿Será que efectivamente P = N?
¿O será que no hemos sido lo suficientemente astutos, o pacientes, en la búsqueda? En todo caso, podríamos
en tal situación conjeturar que P = N. Y entonces, ¿cómo probar que la conjetura es cierta? Resulta que, tras
varios años de discusiones, los matemáticos se dieron cuenta de que hay varias formas muy útiles para decidir
si un subconjunto de los naturales es el conjunto de todos los naturales. El objetivo del resto del capítulo es
explorar algunas de esas formas, que a primera vista pueden parecer muy diferentes, aún cuando terminaremos
demostrando que son equivalentes. Las herramientas que aquí veremos han sido y son de mucha utilidad en la
demostración de proposiciones del estilo de la que enunciamos al principio.

Definición 1.1. Sea P un subconjunto de los números reales. P se dice inductivo si satisface simultánea-
mente las siguientes dos condiciones:
1. 0 está en P
2. Si n es un número que está en P , entonces n + 1 también está en P

Por una analogía con fichas de dominó que caen empujadas por su anterior (que acaba de caer) y que a
su vez harán caer a la que les siguen, muchas veces se dice que los conjuntos inductivos tienen la propiedad
dominó.
Por ejemplo, el conjunto de todos los reales mayores o iguales que 0 es inductivo, así como el conjunto
de todos los enteros mayores que −5. El conjunto {0} no es inductivo, ni tampoco el de todos los enteros
mayores que 7. Adivine, querido lector, en qué categoría caen los conjuntos {x ∈ R : −5 ≤ x ≤ 4 ∨ x ≥ 5} y
{x ∈ R : x = 0 ∨ x ≥ 1}.

Definición 1.2. El conjunto de los números naturales N se define como el más pequeño (en el sentido de
la contención de conjuntos) de todos los subconjuntos de números reales que son inductivos. Es decir, N está
caracterizado por las siguientes dos propiedades:
1. N es inductivo, y
2. si S es un subconjunto inductivo de R, entonces S ⊃ N.

2.1. El Principio de Inducción, primera forma (PI1). De la propia definición que hemos dado de
N, surge un primer criterio para decidir si un subconjunto P de N es todo N: verificar si P es inductivo. De
serlo, entonces P = N. Es decir:
8 1. PRINCIPIO DE INDUCCIÓN Y PRINCIPIO DE BUENA ORDENACIÓN

Sea P ⊂ N tal que satisfaga simultáneamente:


a) 0 ∈ P
b) ∀n ∈ N, (n ∈ P =⇒ n + 1 ∈ P )

Entonces P = N

De acuerdo a esto, para verificar si un dado subconjunto P de N es N, primero hay que ver si 0 ∈ P . De no ser
así, está claro que P 6= N. Ahora si 0 ∈ P , hay que verificar el segundo requisito: tomar un natural n arbitrario,
suponer que está en P , y mostrar que su consecutivo, n + 1, también está en P . Si es así, entonces P = N.
El PI1 es intuitivamente muy claro: primero pide que 0 esté en P (que caiga el primer dominó de la fila).
Si además están los consecutivos de cada elemento en P (que cada dominó, si cae, voltee al que le sigue), ya
sabiendo que 0 ∈ P , entonces 1 ∈ P , y de allí que 2 ∈ P , de donde 3 ∈ P , así que 4 ∈ P , y por lo tanto 5 ∈ P ,
por lo cual . . . Termina siendo que todo natural está en P , es decir, N ⊂ P . Como de entrada teníamos que
P ⊂ N, debe ser P = N.
El hecho de vigilar que 0 ∈ P se llama base del proceso, y el de verificar que si n está en P entonces n + 1
también está en P , se llama paso inductivo. En este paso inductivo, el hecho de suponer que n ∈ P se llama
hipótesis inductiva, o hipótesis de inducción.

2.2. El Principio de Inducción, segunda forma (PI2). Según este principio, hay que vigilar un solo
requisito, consistente en una modificación al paso inductivo del PI1:

Sea P ⊂ N tal que satisfaga:


 
∀n ∈ N, ∀k ∈ N, (k < n ⇒ k ∈ P ) =⇒ n ∈ P

Entonces P = N


¿Parece chino? Expliquémoslo en castellano: la expresión ∀k ∈ N, (k < n ⇒ k ∈ P ) significa que todos
los naturales menores (estrictamente) que n están en P (la expresión podría haberse escrito también así: ∀k <
n, k ∈ P , pero preferimos dejarla como está para recalcar que nuestro universo de trabajo es el conjunto de
todos los naturales); al estar como antecedente de la implicación, quiere decir entonces que hay que interpretarla
como “suponer que todos los naturales menores que n están en P ”. Es nuestra hipótesis de inducción. Por lo
tanto, dado n ∈ N, la implicación involucrada pide verificar si se puede concluir que n está en P bajo la
suposición de que todos los naturales menores que n están en P . En definitiva, el principio dice que se elija
un natural n arbitrario, y que se haga de cuenta que todos los naturales menores (estrictamente) que n están
en P . Si con ello se logra demostrar que el propio n también está en P , entonces P = N. Para terminar de
entender intuitivamente el PI2, primero veamos que un subconjunto de naturales que satisface el requisito del
PI2 necesariamente contiene al 0.
Lema 1.3. Sea P ⊂ N tal que satisfaga el requisito del PI2. Entonces 0 ∈ P .
Demostración. Ya que se cumple el requisito, tenemos que, en particular, haciendo n = 0, es verdadera
la siguiente implicación: ∀k ∈ N, (k < 0 ⇒ k ∈ P ) =⇒ 0 ∈ P . Como el antecedente de la misma es también
verdadero (pues no existe un natural menor que 0), deducimos que el consecuente debe ser verdadero, es decir,
0 ∈ P. 

Ahora expliquemos el porqué del PI2, es decir, por qué un P que satisfaga el requisito es todo N. Por el
lema, ya sabemos que 0 está en P . Como todos los naturales menores que 1 están en P , del requisito surge que
1 está en P . Pero entonces, como todos los naturales menores que 2 están en P , se tiene que 2 está en P , y,
continuando así, vemos que cualquier natural está en P .
Un comentario más: el PI2 pide verificar que
suponiendo que todo natural menor que 0 está en P , 0 está en P
suponiendo que todo natural menor que 1 está en P , 1 está en P
suponiendo que todo natural menor que 2 está en P , 2 está en P
etcétera
(lógicamente, no vamos a verificar una por una, sino que procederemos a través de alguna generalización). Viendo
bien la implicación correspondiente al 0, su antecedente es siempre verdadero. Por tanto, obligatoriamente hay
que controlar que 0 está en P . Por eso, muchos autores enuncian el PI2 con 2 requisitos: el que dimos aquí, más
3. EL PRINCIPIO DEL BUEN ORDEN (PBO) Y EL PRINCIPIO DEL CONTRAEJEMPLO MÁS CHICO (PCMC) 9

el requisito de que 0 pertenezca a P . Si bien es redundante (ver el lema 1.3), no hay ningún pecado en ello (es
más, recuerda al usuario que tarde o temprano debe verificar que 0 ∈ P ).

3. El Principio del Buen Orden (PBO) y el Principio del Contraejemplo Más Chico (PCMC)
Ya desde chicos estamos concientizados de que si tomamos cualquier subconjunto de números naturales,
ese subconjunto contendrá un elemento más chiquito que los otros miembros del conjunto, según la ordenación
natural que nos enseñaron (la cosa puede ser distinta si preguntamos por el elemento más grande del conjunto,
pero eso no viene al caso ahora). Vamos a formalizar esto a través de una serie de definiciones.
Definición 1.4. Dados dos conjuntos X e Y , el producto cartesiano X por Y , denotado X × Y , es el
conjunto de todos los pares ordenados cuya primera componente está en X y cuya segunda componente está
en Y . Es decir, X × Y = {(x, y) : x ∈ X ∧ y ∈ Y }. Una relación en X es cualquier subconjunto del producto
cartesiano X × X.
Definición 1.5. Sea R una relación en X. R es reflexiva si ∀x ∈ X, (x,x) ∈ R. R es antirreflexiva si
/ R. R es antisimétrica
∀x ∈ X, (x, x) ∈  si ∀x, y ∈ X, (x, y) ∈ R ∧ (y, x) ∈ R =⇒ x = y. R es transitiva si
∀x, y, z ∈ X, (x, y) ∈ R ∧ (y, z) ∈ R =⇒ (x, z) ∈ R.
Definición 1.6. Una relación R transitiva en X se llama un orden para X, y decimos entonces que X está
ordenado por R. Si (x, y) está en R, decimos que x e y son comparables. R es un orden total para X si es
un orden en el cual dos elementos cualesquiera de X son comparables, es decir, ∀x, y ∈ X, (x, y) ∈ R∨(y, x) ∈ R.
Una relación de orden que es también antisimétrica y reflexiva se dice un orden amplio, en tanto que una
relación de orden antirreflexiva se llama un orden estricto.
En la teoría general de órdenes, es usual emplear el símbolo ≤ en cuenta de R para simbolizar una relación
de orden amplio, y decimos a ≤ b (“a es menor o igual que b”) en lugar de (a, b) ∈ ≤. Además, si a ≤ b pero
a 6= b, escribimos a < b (“a es menor que b”); < es una relación de orden estricto.
Definición 1.7. (el orden usual de N) Sean a, b ∈ N. Se dice que a ≤ b si existe c ∈ N tal que a + c = b.
Queda como ejercicio comprobar que la relación así definida es efectivamente un orden amplio para N.
Definición 1.8. Sea A un subconjunto de un conjunto X ordenado por una relación ≤. Se dice que A
posee primer elemento, o mínimo elemento, si existe m ∈ A tal que ∀x ∈ A, m ≤ x.
Definición 1.9. Un conjunto X ordenado por ≤ se dice bien ordenado si todo subconjunto no vacío de
X posee un mínimo elemento.
PRINCIPIO DEL BUEN ORDEN: N, con su relación de orden usual, es un conjunto bien
ordenado. Es decir, todo subconjunto no vacío del conjunto de los números naturales posee
elemento mínimo.
Y así de sencilla es la formulación del principio del buen orden. Por supuesto que responde a lo que
intuitivamente uno espera: si un conjunto P ⊂ N es no vacío, tiene al menos un elemento n0 ∈ P . O bien ese n0
es el elemento mínimo en P , o bien hay algún elemento n1 ∈ P tal que n0 > n1 . O bien ese n1 es el elemento
mínimo en P , o bien hay algún elemento n2 ∈ P tal que n1 > n2 . Así siguiendo, estamos desarrollando un
proceso de búsqueda que debe finalizar, tarde o temprano, pues la lista estrictamente decreciente de números
naturales que vamos obteniendo no puede ser infinita.
Una manera de plasmar el PBO en una herramienta para decidir si un subconjunto P de naturales es todo
N, es el siguiente PRINCIPIO DEL CONTRAEJEMPLO MAS CHICO:

Sea P ⊂ N tal que satisfaga: 


∀n ∈ N, n ∈
/ P =⇒ ∃k ∈ N : (k < n ∧ k ∈
/ P)

Entonces P = N

De nuevo, a no asustarse con los jeroglíficos. El principio establece que si por cada número natural que no
estuviese en P fuésemos capaces de encontrar un número natural menor que tampoco esté en P , entonces P
debe contener a todos los naturales. Esta conclusión es clara: si se cumpliera el requisito, y si hubiera un natural
n0 ∈/ P , seríamos capaces de encontrar una sucesión estrictamente decreciente infinita de naturales, cosa que es
imposible.  
El requisito ∀n ∈ N, n ∈ / P =⇒ ∃k ∈ N : (k < n ∧ k ∈ / P ) fue escrito así para hacer hincapié en que
tal k es un número natural. Si se da eso por sobreentendido, el requisito también podría haberse escrito así:
∀n ∈ N, n ∈ / P =⇒ (∃k < n : k ∈/ P ) . Notemos entonces que, por contrarreciprocidad, el principio establece
que si P 6= N, entonces ∃n ∈ N : (n ∈/ P ∧ ∀k < n, k ∈ P ).
10 1. PRINCIPIO DE INDUCCIÓN Y PRINCIPIO DE BUENA ORDENACIÓN

4. Equivalencia entre los cuatro principios


Ahora demostraremos que si se acepta como verdadero cualquiera de los principios vistos, en base a éso se
puede deducir la veracidad de cualquiera de los restantes. Para hacerlo, demostraremos el siguiente esquema de
implicaciones:
PI1 =⇒ PI2
⇑ ⇓
PCMC ⇐= PBO
1. PI1=⇒PI2. Nuestra hipótesis es que
 
∀Q ⊂ N, 0 ∈ Q ∧ (∀n ∈ N, n ∈ Q ⇒ n + 1 ∈ Q) =⇒ Q = N
y debemos demostrar que
!
  
∀P ⊂ N, ∀n ∈ N, ∀k ∈ N, (k < n ⇒ k ∈ P ) =⇒ n ∈ P =⇒ P = N

Supongamos entonces que un subconjunto P de los naturales satisface que


  
∀n ∈ N, ∀k ∈ N, (k < n ⇒ k ∈ P ) =⇒ n ∈ P
Nuestro objetivo es demostrar que P = N, suponiendo válido el PI1. Hagamos
Q = {n ∈ N : para todo natural i ≤ n, i ∈ P }
Notemos que Q ⊂ P : si n ∈ Q, se tiene que para todo natural i ≤ n, i ∈ P . En particular, n ∈ P .
Verifiquemos ahora que Q satisface los requisitos del PI1: como 0 ∈ P (lema 1.3), entonces 0 cumple
la condición de pertenencia a Q. Ahora sea n cualquier natural en Q. Esto quiere decir que para todo
natural i ≤ n, i ∈ P . Dicho de otro modo, para todo natural i < n + 1, i ∈ P . Ya que estamos
suponiendo que P cumple el requisito del PI2, deducimos que n + 1 está en P . Por lo tanto, para todo
natural i ≤ n + 1, i ∈ P . Luego, n + 1 ∈ Q. Como Q satisface los dos requisitos del PI1 que hemos
aceptado como válido, es Q = N. Ya que Q ⊂ P , concluimos que N ⊂ P , y como de entrada teníamos
que P ⊂ N, llegamos a que P = N, según deseábamos.
2. PI2=⇒PBO. Ahora nuestra hipótesis es que
!
  
∀P ⊂ N, ∀n ∈ N, ∀k ∈ N, (k < n ⇒ k ∈ P ) =⇒ n ∈ P =⇒ P = N

y nuestor objetivo es demostrar que


∀M ⊂ N, M 6= ∅ =⇒ M tiene primer elemento
Sea entonces M un subconjunto de los naturales, y hagamos de cuenta que M no tiene un mínimo
elemento. Llamemos P = N − M , y veamos que P satisface el requisito del PI2. Sea n cualquier número
natural, y supongamos que todos los naturales estrictamente menores que n están en P . Luego, ningún
natural menor que n está en M . Entonces, ¿puede ser que n ∈ M ? No, pues sino n sería elemento
mínimo en M , pero hemos supuesto que M no tiene elemento mínimo. Entonces, n ∈ / M , por lo que
n ∈ P . O sea que P satisface el requisito del PI2, que al ser aceptado como verdadero fuerza a que
P = N. Entonces es M = ∅. ¿Qué hemos demostrado? Que si un subconjunto de los naturales no tiene
mínimo elemento, entonces es el conjunto vacío. Esto es equivalente (por contrarrecíproca) a que si un
subconjunto de los naturales no es vacío, entonces tiene mínimo elemento.
3. PBO=⇒PCMC. Tenemos como hipótesis que
∀M ⊂ N, M 6= ∅ =⇒ M tiene primer elemento
y queremos probar que
!
 
∀P ⊂ N, ∀n ∈ N, n ∈
/ P ⇒ ∃k ∈ N : (k < n ∧ k ∈
/ P) =⇒ P = N
 
Sea P ⊂ N satisfaciendo que ∀n ∈ N, n ∈ / P =⇒ ∃k ∈ N : (k < n ∧ k ∈/ P ) . Hagamos M = N − P . Si
fuese M 6= ∅, por el PBO tendría un elemento mínimo m. Por la definición de M , se tiene que m ∈ / P.
Pero como P satisface el requisito del PCMC, existiría un natural k < m tal que k ∈ / P , por lo que
k ∈ M . Pero esto es una contradicción, pues debe ser k ≥ m ya que m es el primer elemento en M . La
contradicción provino de suponer que M 6= ∅. Entonces debe ser M = ∅, y de allí que P = N.
4. PCMC=⇒PI1. Aquí la hipótesis es que
!
 
∀P ⊂ N, ∀n ∈ N, n ∈ / P ⇒ ∃k ∈ N : (k < n ∧ k ∈/ P) =⇒ P = N
5. APLICACIÓN A LA DEMOSTRACIÓN DE PROPOSICIONES 11

y debemos demostrar que


 
∀P ⊂ N, 0 ∈ P ∧ (∀n ∈ N, n ∈ P ⇒ n + 1 ∈ P ) =⇒ P = N
Sea entonces P ⊂ N satisfaciendo los dos requisitos del PI1. Debemos ver que P = N. Supongamos que
eso no fuese cierto, es decir, P 6= N. Luego, por el PCMC (versión contrarrecíproca), hay un n ∈ N tal
que n ∈/ P pero ∀k < n, k ∈ P . Tal n no puede ser 0, pues hemos supuesto que 0 ∈ P . Entonces es
n > 0. Pero entonces n − 1 ∈ P pues n − 1 < n. Y como P satisface también el segundo requisito del
PI1, ya que n − 1 ∈ P , concluiríamos que n ∈ P , contradiciendo que n ∈/ P . La contradicción provino
de suponer P 6= N. Luego, es P = N.

5. Aplicación a la demostración de proposiciones


Supongamos que queremos demostrar una proposición del estilo “∀n ∈ N, p(n)”, con p(n) predicado sobre
la variable natural n. Como ya dijimos, esto equivale a hacer P = {n ∈ N : p(n) es verdadera} y comprobar si
P = N. Por el PI1, esto se satisface si 0 ∈ P y si ∀n ∈ N, n ∈ P ⇒ n+1 ∈ P . Por la definición de P , estos últimos
equivalen a ver si p(0) es verdadera y si suponiendo p(n) verdadera puede deducirse que p(n + 1) también lo es.
Arribamos entonces a la siguiente formulación del PI1 para demostrar la veracidad de “∀n ∈ N, p(n)”.

Sea p(n) un predicado (sobre la variable natural n) que satisfaga simultáneamente:


a) p (0) es verdadero
b) ∀n ∈ N, si p(n) es verdadero, entonces p (n + 1) es también verdadero

Entonces, la proposición “∀n ∈ N, p(n)” es verdadera.

Ejemplo 1.10. Verificar que ∀n ∈ N, 1 + n = n + 1.


La forma proposicional p(n) a considerar es “1 + n = n + 1”.
1. Primero verifiquemos que p (0) es verdadera, es decir, que 1 + 0 = 0 + 1. Es cierto, pues ambos miembros
de la igualdad valen 1.
2. Ahora, siendo n cualquier natural, suponemos p(n) verdadero: 1 + n = n + 1. Tomando eso como cierto,
debemos ver que p(n + 1) también lo es, es decir, que 1 + (n + 1) = (n + 1) + 1. Por propiedad asociativa
y en virtud de la hipótesis de inducción tenemos que 1 + (n + 1) = (1 + n) + 1 = (n + 1) + 1, es decir,
hemos probado la igualdad que queríamos.
Ya que se cumplen los dos requisitos del PI1 para la proposición analizada, concluimos que ésta es verdadera,
es decir, ∀n ∈ N, 1 + n = n + 1. 
Ejemplo 1.11. Decidir si es cierto que ∀n ∈ N, 2n ≥ 1.
La forma proposicional p(n) a considerar es “2n ≥ 1”.
1. Primero verifiquemos que p(0) es verdadera, es decir, que 20 ≥ 1. Es cierto, pues 20 = 1.
2. Ahora, siendo n cualquier natural, suponemos p(n) verdadero: 2n ≥ 1. Tomando eso como cierto,
debemos ver que p(n + 1) también lo es, es decir, que 2n+1 ≥ 1. Por propiedades de las potencias,
2n+1 = 21 · 2n = 2 · 2n . Por hipótesis inductiva, se tiene que 2 · 2n ≥ 2 · 1 = 2 ≥ 1, de modo que, por
transitividad de la relación ≥, es 2n+1 ≥ 1, según queríamos probar.
Ya que se cumplen los dos requisitos del PI1 para la proposición analizada, concluimos que ésta es verdadera,
es decir, ∀n ∈ N, 2n ≥ 1. 
Ejemplo 1.12. Analizar el valor de verdad de la proposición ∀n ∈ N, 2n + 2 > n
En este ejemplo, p(n) es “2n + 2 > n”.
1. Comenzamos verificando la base de la inducción (el caso n = 0): hay que ver si 20 + 2 > 0. Eso es cierto,
pues 20 + 2 = 3 > 0.
2. Ahora suponemos p(n) verdadero, o sea que nuestra hipótesis de inducción es que 2n + 2 > n. Debemos,
en base a esto, demostrar que 2n+1 + 2 > n + 1. Aprovechamos nuestro conocimiento de la potenciación
para decir que 2n+1 + 2 = 2n 21 + 2 = 2n + (2n + 2). Ahora, aprovechamos nuestra hipótesis inductiva
para decir que 2n + (2n + 2) > 2n + n ≥ n + 1 (hemos usado que 2n ≥ 1 cualquiera sea n, cosa que
hemos verificado en el ejemplo 1.11). Por transitividad, tenemos entonces que 2n+1 + 2 > n + 1, o sea,
el p(n + 1) que queríamos probar.
Habiendo verificado que los dos requisitos del PI1 se satisfacen, podemos concluir la veracidad de la proposición
∀n ∈ N, 2n + 2 > n. 
Es de destacar que, en el proceso de verificación por inducción, es de fundamental importancia vigilar el cumpli-
miento de los dos requisitos, para no obtener conclusiones erróneas.
12 1. PRINCIPIO DE INDUCCIÓN Y PRINCIPIO DE BUENA ORDENACIÓN

Ejemplo 1.13. Decidir si es cierto que ∀n ∈ N, n5 − 10n4 + 35n3 − 50n2 + 24n = 0.


Aquí, p(n) es “n5 − 10n4 + 35n3 − 50n2 + 24n = 0”. Claramente es verdadero para n = 0 (y dicho sea de
paso, para n = 1, 2, 3 y 4, lo que puede verse fácilmente por factorización: n5 − 10n4 + 35n3 − 50n2 + 24n =
n(n−1)(n−2)(n−3)(n−4)). Pero del hecho que, para un n cualquiera, se tenga que n5 −10n4 +35n3 −50n2 +24n
sea igual a 0, no puede inferirse que la expresión (n + 1)5 − 10(n + 1)4 + 35(n + 1)3 − 50(n + 1)2 + 24(n + 1) vaya
a ser también igual a 0 (probar con n = 4). Si sólo nos limitáramos a verificar el requisito de ser p(0) verdadero
para comprobar la veracidad de la afirmación, caeríamos en un error, pues la proposición es falsa. De paso, este
ejemplo nos muestra que una inducción (experimental) sin un razonamiento, o sin búsqueda de razones, puede
llevarnos a conclusiones erróneas, por más casos experimentales que verifiquemos. 
Ejemplo 1.14. ¿Verdadero o falso?: “Todo número natural es igual a su sucesor”. En símbolos: ∀n ∈ N, n =
n + 1.
En este caso, p(n) es “n = n+1”. Supongámosla verdadera para n, es decir, supongamos n = n+1. Sumando
1 a cada miembro, llegaríamos a que (n + 1) = (n + 1) + 1, es decir, p(n + 1) sería verdadera. Luego, se satisface
el segundo requisito del PI1. Sin embargo, sería equivocado tildar a la proposición como verdadera por esa sola
comprobación. Falta verificar p(0). Y resulta que p(0) es falsa. Luego, la proposición es falsa. 
También se puede adaptar el PI2 para la demostración de proposiciones. La formulación del mismo resulta
así:

Sea p(n) un predicado (sobre la variable natural n) que satisfaga:


∀n ∈ N, si p (k) es verdadero para todo natural k < n, entonces p(n) es también verdadero.

Entonces, la proposición “∀n ∈ N, p(n)” es verdadera.

Remarquemos que, si bien no está explícitamente escrito, tarde o temprano debe verificarse que p(0) es verdadera
(está implícitamente pedido en el requisito, para el caso n = 0).
Ejemplo 1.15. Demostrar que ∀n ∈ N, 2n + 2 > n (la misma que hace un rato demostramos por el PI1).
Sea n ∈ N. Debemos suponer verdadera la siguiente hipótesis inductiva:
para todo k natural menor que n, 2k + 2 > k
y tratar, a partir de ello, de deducir que 2n + 2 > n.
A efectos de aplicar, de algún modo, la hipótesis de inducción, debemos trabajar sobre la expresión 2n + 2.
Tal vez, la mejor forma de hacerlo sea notar que 2n + 2 = 2 · 2n−1 + 2 = 2n−1 + 2n−1 + 2. Si bien n − 1 es
estrictamente menor que n, no sería un número natural si fuese n = 0 (y, por lo tanto, no podríamos usar la
hipótesis de inducción de que 2n−1 + 2 > n − 1). Esto nos hace ver que, para demostrar el cumplimiento del
requisito del PI2 en este caso, podemos considerar dos casos: el caso n = 0 y el caso n ≥ 1 (como dijimos, tarde
o temprano necesitamos verificar p(0) por separado):
1. Para n = 0: lo que hay que probar es que si para todo k natural menor que 0, 2k + 2 > k, entonces
20 + 2 > 0. Alcanza con ver que el consecuente de esta última implicación es verdadero. Y lo es, pues
20 + 2 = 1 + 2 = 3 > 0.
2. Para n ≥ 1, hacemos la descomposición de 2n + 2 como decíamos más arriba, pero ya sin el peligro
de que n − 1 no sea natural: 2n + 2 = 2 · 2n−1 + 2 = 2n−1 + 2n−1 + 2. Ahora sí, con total seguridad,
aplicamos la hipótesis de inducción (caso k = n − 1) para decir que 2n−1 + 2n−1 + 2 > 2n−1 + n − 1 ≥ n
pues 2n−1 − 1 ≥ 0 cuando n ≥ 1. Por transitividad, tenemos entonces que 2n + 2 > n, según queríamos.
Acabamos de verificar que se cumple el requisito del PI2, es decir, que la implicación involucrada se cumple para
todo n natural. Por lo tanto, estamos en condiciones de afirmar que la proposición bajo estudio es verdadera.
Ejemplo 1.16. Consideremos la función de N en N definida por:
 n
2 si n es par
f (n) =
n + 1 si n es impar
Nos interesa ahora la aplicación reiterada de esta función a partir de un cierto número natural, como vemos en
los siguientes ejemplos:
1. f (3) = 4, f (4) = 2, f (2) = 1.
2. f (9) = 10, f (10) = 5, f (5) = 6, f (6) = 3, f (3) = 4, f (4) = 2, f (2) = 1.
 
Es decir, estamos haciendo f f · · · f (n0 ) · · · , la composición de f consigo misma un cierto número de veces.
Designamos f (m) (n0 ) a la composición de f consigo misma una cantidad m de veces. De los ejemplos anteriores,
vemos que f (3) (3) = 1, f (3) (9) = 6, f (7) (9) = 1. Por el PI2, probaremos que empezando con cualquier n y
5. APLICACIÓN A LA DEMOSTRACIÓN DE PROPOSICIONES 13

aplicando reiteradamente f , tarde o temprano obtenemos 0 o 1. Es decir, mostraremos que ∀n ∈ N, ∃m ≥ 1 :


f (m) (n) ≤ 1. La forma proposicional p(n) es ∃m ≥ 1 : f (m) (n) ≤ 1.
Verificamos primero para n = 0: basta con tomar m = 1, pues f (1) (0) = f (0) = 0 ≤ 1.
Para facilitar la demostración, también veremos que para n = 1 se cumple: tomando m = 2, tenemos
f (2) (1) = f f (1) = f (2) = 1, así que p(1) es también verdadera.
Ahora sea n ∈ N, y supongamos que para todo k < n existe m ≥ 1 tal que f (m) (k) = 1. Podemos considerar
que n ≥ 2 pues los otros casos ya fueron demostrados.
Si n es par, es f (n) = n/2, que es un natural menor quen, y entonces, por hipótesis inductiva, existe
′ ′ ′
m′ ≥ 1 tal que f (m ) (n/2) = 1. Por lo tanto, f (m ) f (n) = 1, es decir, f (m +1) (n) = 1. Luego, basta
con tomar m = m′ + 1 ≥ 1 para tener f (m) (n) ≤ 1.
Si n es impar, es f (n) = n + 1, y f (2) (n) = (n + 1)/2,
 que es un natural menor que n. Entonces, por

(m′ )
hipótesis inductiva, existe m′ ≥ 1 tal que f (m ) n+1 2 = 1. Por lo tanto, f f (2)
(n) = 1, es decir,

(m +2) ′ (m)
f (n) = 1. Luego, basta con tomar m = m + 2 ≥ 1 para tener f (n) ≤ 1.
Luego, sea n par o impar, tenemos que p(n) es cierta. Como se satisface el requisito del PI2, la proposición
∀n, p(n) resulta verdadera. 
Atención: el requisito del PI2 pide una verificación para todo n natural. No puede quedar ninguno fuera
de esta verificación, pues de lo contrario podríamos incurrir en errores, como mostramos ahora.
Ejemplo 1.17. Usando el PI2, “mostraremos” que ∀n ∈ N, 2n = 1.
Sea n ∈ N. Supongamos que para todo k < n se verifique 2k = 1. Es decir, 20 = 21 = 22 = · · · = 2n−1 = 1.
Entonces, 2n = 2n−1 21 = 1 · 1 = 1. Lista la demostración.
Obviamente, hemos incurrido en alguna equivocación, o nos falta algo. ¡No puede ser que la función ex-
ponencial sea constante! Veamos un poco: cuando escribimos 2n = 2n−1 21 y aplicamos nuestra hipótesis de
inducción, estamos confiando ciegamente en que n − 1 y 1 son dos naturales estrictamente menores que n (sólo
así estamos autorizados a aplicar la hipótesis de la inducción). Pero n − 1 es natural sólo en el caso en que
n ≥ 1, y 1 es estrictamente menor que n sólo en el caso en que n ≥ 2. Por lo tanto, lo que hemos hecho en la
(errónea) demostración anterior es verificar el cumplimiento del requisito del PI2 sólo para los n ≥ 2. Como se
debe verificar para todo n, faltan considerar los casos n = 0 y n = 1. Es decir, faltan comprobar:
1. Si p(k) es verdadero para todo k < 0, entonces p(0) es verdadera.
2. Si p(k) es verdadero para todo k < 1, entonces p(1) es verdadera.
Reemplazando p(k), re–enunciemos las dos cosas que faltan comprobar:
1. Si 2k = 1 para todo k < 0, entonces 20 = 1. Se trata de una implicación verdadera, pues su antecedente
y su consecuente son ambos verdaderos.
2. Si 2k = 1 para todo k < 1, entonces 21 = 1. Como el único natural menor que 1 es 0, hay que
demostrar que suponiendo 20 = 1, es 21 = 1. Es evidente que es falsa (pues 21 6= 1), aunque en nuestra
demostración falaz de más arriba pareciera haber quedado demostrada. Pero ya hemos explicado por
qué la demostración no incluía el caso n = 1 (que en definitiva es el único que falla).
Resumiendo, si alguien nos demuestra que ∀n ∈ N, 2n = 1 escribiendo la demostración falaz de más arriba,
debemos decirle: “muy bonito todo lo que hiciste, está muy bien. Pero te falta probar los casos n = 0 y n = 1.
Al caso n = 0 te lo creo. ¿Me mostrarías, por favor, el caso n = 1?” e ir a tomar tranquilos una cerveza mientras
el otro pobre se aboca a la imposible tarea de demostrar que si 20 = 1, entonces 21 = 1. 
Y la formulación del PCMC, versión proposicional, es así:

Sea p(n) un predicado (sobre la variable natural n) que satisfaga:


∀n ∈ N, si p(n) es falso, entonces existe un natural k < n tal que p (k) es también falso

Entonces, la proposición “∀n ∈ N, p(n)” es verdadera.

Ejemplo 1.18. Considerar la siguiente función f de naturales en naturales:



1 si n = 0
f (n) =
2f (n − 1) si n 6= 0
Así, f (0) = 1, f (1) = 2f (0) = 2 · 1 = 2, f (2) = 2f (1) = 2 · 2 = 4, f (3) = 2f (2) = 2 · 4 = 8, etc. Conjeturamos
entonces que, para todo n ∈ N, es f (n) = 2n . Lo demostraremos usando el PCMC. Nuestra proposición p(n) es
“f (n) = 2n ”. Supongamos que hubiera un contraejemplo, es decir, p(n) es falso para algún n ∈ N. Esto quiere
decir que f (n) 6= 2n . Claro que no puede ser n = 0, pues f (0) = 1 y 20 = 1, de donde f (0) = 20 . Entonces debe
ser n ≥ 1. En ese caso, f (n) = 2f (n − 1), por lo que 2n 6= 2f (n − 1), y entonces 2n−1 6= f (n − 1). Hagamos
14 1. PRINCIPIO DE INDUCCIÓN Y PRINCIPIO DE BUENA ORDENACIÓN

k = n − 1, que es natural (pues es n ≥ 1) estrictamente menor que n. Llegamos entonces a que f (k) 6= 2k , es
decir, k es un contraejemplo, y menor que n. En síntesis, hemos demostrado que si hubiera un contraejemplo
(n), habría un contraejemplo menor (k). Luego, por el PCMC, es verdadera la proposición ∀n ∈ N, f (n) = 2n .
5.1. Algunas variantes.
• Supongamos que deseamos probar una proposición del tipo “ ∀n ≥ n0 , p(n)”, en donde n0 es un natural
dado (no necesariamente 0) y n es una variable natural. El PI1 adaptado a este caso consiste en vigilar:
1. p (n0 ) es verdadera, y
2. ∀n ≥ n0 , suponiendo que p(n) es verdadera, demostrar que p(n + 1) es también verdadera.
El fundamento de esta adaptación es sencillo: las proposiciones
∀n ≥ n0 , p(n) y ∀n ∈ N, p (n + n0 )
son equivalentes (pues ambas son verdad si y sólo si son verdaderas p (n0 ) , p (n0 + 1) , p (n0 + 2), etc). Por el
PI1, “∀n ∈ N, p (n + n0 )” es cierta si p (n0 ) es cierta y si para cualquier n ∈ N, el suponer p (n + n0 ) verdadera
implica que p (n0 + n + 1) también lo es; esto último es lo mismo que ver si para cualquier n ≥ n0 se tiene que
p (n) implica p (n + 1).
Nótese que el método también andaría bien en caso de ser n0 un entero (no necesariamente natural), y n
variable entera.
Ejemplo 1.19. Mostrar que ∀n ≥ 4, 2n > n + 11.
1. ¿Es p(4) verdadera? Sí, pues 24 = 16 > 4 + 11 = 15.
2. Sea n cualquier natural mayor o igual que 4, y supongamos p(n) verdadera, es decir, 2n > n + 11. ¿Es
p(n + 1) verdadera? Es decir, ¿es cierto que 2n+1 > n + 12? Veamos: 2n+1 = 2 · 2n > 2(n + 11) =
n + 22 + n > n + 12. Entonces, se cumple el segundo requisito del PI1 adaptado.
Por lo tanto, la proposición queda demostrada. 
• Más generalmente, supongamos que deseamos probar una proposición del tipo “∀n ∈ A, p(n)”, donde
p(n) es un predicado en la variable natural n y A es un subconjunto infinito de N, pero no todo N. Por ejemplo,
“∀n natural impar, p(n)”. Esto equivale a “∀n ∈ N, p(2n + 1)”, por lo que podemos intentar demostrar esta
última por alguno de los métodos vistos, por ejemplo PI1, que exigiría en este caso probar primero la veracidad
de p(1), y luego, suponiendo p(2n + 1) verdadero, probar p(2n + 3).
• Supongamos que deseamos probar una proposición del tipo “∀n ∈ Z, p(n)”, donde p(n) es un predicado
en la variable entera n. Esa proposición es equivalente a la conjunción
 
∀n ∈ N, p(n) ∧ ∀n ∈ N, p(−n)
de modo que una táctica puede ser probar, por separado, cada proposición por alguno de los métodos vistos.
• Podemos extender los métodos vistos a proposiciones que involucren dos o más variables naturales.
Por ejemplo, ∀m, n ∈ N, p(m, n) en donde p(m, n) es un predicado en las variables naturales m y n. Para usar el
PI1, una técnica puede ser tomar un m arbitrario (por claridad notacional podríamos llamarlo m0 ) y demostrar
que p (m0 , 0) es verdadera y que, cualquiera sea n ∈ N, p (m0 , n) implica p (m0 , n + 1) (observar que habiendo
fijado m0 , estamos haciendo inducción en la variable n).
Ejemplo 1.20. Mostrar que ∀m, n ∈ N, (m + 1)(n + 1) ≥ 1.
En este caso, p(m, n) es “(m + 1)(n + 1) ≥ 1”. Sea m0 cualquier natural, y demostremos, por inducción
matemática en la variable n, que ∀n ∈ N, p (m0 , n):
1. p (m0 , 0) es “(m0 + 1) (0 + 1) ≥ 1”. Es verdadera, pues, siendo m0 ≥ 0, es (m0 + 1) (0 + 1) = m0 + 1 ≥
0 + 1 = 1.
2. Supongamos ahora que p (m0 , n) es verdadera, siendo n un natural arbitrario. Vale decir, supongamos
que (m0 + 1) (n + 1) ≥ 1. Debemos ver que p (m0 , n + 1) es también cierta, es decir, que
(m0 + 1) (n + 2) ≥ 1
Desarrollando, y aplicando hipótesis de inducción, tenemos:
(m0 + 1) (n + 2) = (m0 + 1) (n + 1 + 1) = (m0 + 1) (n + 1) + (m0 + 1)
≥ 1 + (m0 + 1) ≥ 1
Así que se satisfacen ambos requisitos del PI1 para p (m0 , n). Por lo tanto, para el m0 elegido, es cierta la
proposición ∀n, p (m0 , n). Pero m0 se eligió arbitrariamente en el conjunto de los naturales. Por lo tanto, se
tiene que ∀m, ∀n, p(m, n), como queríamos. 
También, dada una proposición del tipo ∀m ∈ N, ∀n ∈ N, p(m, n), podemos designar q(m) al predicado
∀n ∈ N, p(m, n) y probar por inducción sobre m la proposición ∀m ∈ N, q(m). En este caso, la base de la
inducción es ∀n ∈ N, p(0, n) (que a su vez puede ser probada por inducción sobre n o por cualquier otro
método). Luego, la hipótesis de inducción es que ∀n ∈ N, p(m, n) y la tesis de inducción es ∀n ∈ N, p(m + 1, n).
6. ALGUNAS PROPIEDADES DEL CONJUNTO DE LOS NÚMEROS NATURALES 15

Ejemplo 1.21. Demostrar que ∀m, n ∈ N, m + n = n + m, por el método arriba descripto.


Designemos por p(m, n) a la forma proposicional m + n = n + m. La base de la inducción consiste en probar
que ∀n ∈ N, 0 + n = n + 0. Resulta cierta pues el 0 es el neutro de la suma.
Ahora, sea m cualquier natural, y supongamos que ∀n ∈ N, m + n = n + m. Debemos probar que ∀n ∈
N, (m + 1) + n = n + (m + 1). Sea n cualquier natural. De la hipótesis inductiva y la asociatividad de la suma,
se tiene que (m + 1) + n = (1 + m) + n = 1 + (m + n). Nuevamente por hipótesis inductiva y asociatividad,
tenemos que 1 + (m + n) = 1 + (n + m) = (1 + n) + m. Usando que 1 conmuta con cualquier natural (que
demostramos en el ejemplo 1.10), es (1 + n) + m = (n + 1) + m = n + (1 + m). Luego, (m + 1) + n = n + (m + 1),
según queríamos probar. 
• Siguiendo con el mismo tipo de proposiciones del inciso anterior, podemos aplicar el PCMC de la
siguiente forma: suponiendo que el par (m, n) es contraejemplo, demostrar que existe un contraejemplo (m′ , n′ )
menor (en algún sentido) que (m, n). Por ejemplo, menor en el sentido de las primeras componentes (m′ < m), o
menor en el sentido de las segundas componentes (n′ < n), o menor en suma de componentes (m′ + n′ < m + n),
etc.
Ejemplo 1.22. La definición de factorial de un número natural es:

1 si n = 0
n! =
n(n − 1)(n − 2) . . . 2 · 1 si n 6= 0
Observar que el factorial de cualquier número siempre es un entero positivo, y que si n > 0, es n! = n(n−1)!.
Demostrar: ∀m, n ∈ N, m > n =⇒ m! ≥ n!
Aquí, p(m, n) es “m > n =⇒ m! ≥ n!”. Sea (m, n) un contraejemplo, es decir, m > n ∧ m! < n!. No puede
ser n = 0, por la propia definición de factorial. Entonces es m > n ≥ 1. Pero entonces m(m − 1)! < n(n − 1)! <
m(n − 1)!. Cancelando, se tiene (m − 1)! < (n − 1)!. Por otro lado, es m − 1 > n − 1, pues hemos supuesto
m > n. Hagamos m′ = m − 1 y n′ = n − 1. De lo visto, es m′ > n′ ∧ m′ ! < n′ !, es decir, el par (m′ , n′ ) es
también contraejemplo, y más chico que (m, n) (en el sentido de la primera componente). Luego, la proposición
es verdadera. 

6. Algunas propiedades del conjunto de los números naturales


Para poder estudiar propiedades en el conjunto de los números naturales, es necesario aceptar ciertos
enunciados como base: son los axiomas acerca de los números naturales. Durante mucho tiempo, los
matemáticos han buscado minimizar la lista de axiomas, es decir, tomar los axiomas más simples y en menor
cantidad posible, que permitan construir la teoría de los números naturales tal como la conocemos, en donde
valgan propiedades como la conmutatividad de la suma, la asociatividad del producto, etc., y a partir de los
cuales puedan derivarse todas las proposiciones verdaderas acerca de los naturales. Hay consenso en que quien
mejor hizo la tarea de minimización es el lógico y matemático italiano Giuseppe Peano, a través de los siguientes
cinco axiomas:
1. 0 ∈ N.
2. ∀a ∈ N, a + 1 ∈ N.
3. ∀a, b ∈ N, a 6= b ⇒ a + 1 6= b + 1.
4. ∀a ∈ N, a + 1 6= 0.
5. Es válido el principio del buen orden.
Dejamos el interrogante de si estos cinco axiomas son suficientes para obtener todas las proposiciones verdaderas
sobre los números naturales. El tema es profundo, y se trata detalladamente en un curso posterior: el de
Fundamentos de la Matemática.
El hecho de incorporar axiomáticamente el principio del buen orden (o, equivalentemente, los principios
de inducción), permite demostrar muchas propiedades básicas de los números naturales (que tal vez en algún
curso anterior han sido presentadas como axiomas). Por ejemplo, la conmutatividad de la suma. Varias de esas
demostraciones se verán con todo detalle en el mismo curso de Fundamentos de la Matemática, así que aquí
sólo nos limitaremos a enunciar algunas propiedades básicas, deducibles a partir de los cinco axiomas de Peano,
y que nos serán de mucha utilidad en lo sucesivo:
1. ∀a, b ∈ N, a + b ∈ N ∧ ab ∈ N (ley de cierre de la suma y del producto).
2. ∀a, b ∈ N, a + b = b + a ∧ ab = ba (ley conmutativa de la suma y del producto).
3. ∀a, b, c ∈ N, a + (b + c) = (a + b) + c ∧ a (bc) = (ab) c (ley asociativa de la suma y del producto).
4. ∀a, b, c ∈ N, a + c = b + c ⇔ a = b (ley cancelativa de la suma).
5. ∀a, b, c ∈ N, (ac = bc ∧ c 6= 0) ⇒ a = b (ley cancelativa del producto por un número no nulo).
6. ∀a, b, c ∈ N, a + c > b + c ⇒ a > b (cancelación de términos en desigualdades).
7. ∀a, b, c ∈ N, ac > bc ⇒ a > b (cancelación de factores en desigualdades).
8. ∀a, b, c, d ∈ N, (a > c ∧ b > d) ⇒ (a + b > c + d ∧ ab > cd) (uniformidad).
9. ∀a ∈ N, a + 0 = a ∧ a · 1 = a (existencia del neutro de la suma y del producto).
16 1. PRINCIPIO DE INDUCCIÓN Y PRINCIPIO DE BUENA ORDENACIÓN

10. ∀a, b, c ∈ N, a (b + c) = ab + ac (ley distributiva del producto respecto de la suma).


11. ∀a, b ∈ N, ab = 0 ⇔ (a = 0 ∨ b = 0) (no hay divisores de 0).
Capítulo 2

EL CONJUNTO DE LOS NÚMEROS ENTEROS. DIVISIBILIDAD

En este capítulo, trataremos las propiedades básicas del conjunto de los números enteros, y definiremos un
concepto crucial para el entendimiento de dicho conjunto: el de divisibilidad. Ésta conduce a la definición de
número primo, fundamental en la teoría de números y en muchas de sus aplicaciones. Un buen entendimiento
de la divisibilidad entre enteros arranca con el algoritmo de la división de enteros. Este último concepto se
comprende mejor si primero se analiza el algoritmo de la división de números naturales. Por esa razón, primero
abordaremos el tema de la división y divisibilidad entre números naturales, para luego extendernos de manera
natural al conjunto de los enteros.
Más arriba hemos mencionado la palabra algoritmo. Sin pretender dar una definición formal de lo que
significa (aún cuando la tiene), digamos que un algoritmo es un mecanismo o procedimiento para llevar a cabo
una tarea (o, más precisamente, para evaluar una determinada función). Como tal, un algoritmo incluye una serie
de instrucciones a seguir por el usuario para llevar a cabo la tarea. En este curso, trataremos de compenetrarnos
con varios algoritmos relativos a los números naturales y enteros, pero de un nivel de simplicidad elemental, en
el sentido de ser (al menos relativamente) fáciles de comprender y de aplicar. Por eso, vamos a dedicar unas
líneas al abc de la notación algorítmica, es decir, a lo básico que usaremos nosotros al respecto. No hay nada
que temer: la mayoría de las cosas responden al sentido común y se refieren a conceptos que no nos resultarán
del todo extraños. En el apéndice A veremos un modo de usar una computadora para materializar estas ideas.

1. La notación algorítmica
Considérese la siguiente función de reales en reales:

x2 si x > 0
(*) f (x) =
1 − x si x ≤ 0
La función, así como está, se dice que está definida por ramas: en esencia, para determinar el valor de la
función en un dado argumento x0 , primero debemos ver si x0 es positivo o no; en caso de serlo, elevarlo al
cuadrado y ése es el valor de f (x0 ), y en caso de no ser x0 positivo, calcular 1 − x0 y ése es el valor de f (x0 ).
Entonces, podríamos haber especificado la función del siguiente modo menos simbólico, o más coloquial:
f (x) =
(**) si (x > 0) contestar x2
sino contestar 1 − x
Nótese que, a la hora de hacer una evaluación, no hay diferencias con la expresión (*), excepto que queda
explícito que primero hay que verificar el cumplimiento de una cierta condición (si el argumento x es mayor
que 0) antes de contestar, y que lo que hay que contestar depende de si se cumple o no la condición. Escrita
así, aparenta ser una lista de instrucciones a seguir antes que una función real de variable real (aunque por
supuesto que, aún escrita en esa forma, también lo es).
En definitiva, la función escrita como en (**) da un mecanismo para calcular f (x) de acuerdo al argumento
x. Decimos que está escrita en la notación algorítmica, también llamada notación funcional, o pseudocódigo,
que nosotros emplearemos para explicitar cómo se calculan ciertas funciones. Reiteramos, una función escrita
en notación algorítmica no es más que una lista de instrucciones que hay que ir obedeciendo al pie de la letra,
para hacer una determinada evaluación. Es una especie de manual de procedimientos que resume, de manera
global, cómo ha de procederse para llevar a cabo una determinada tarea. Cuando se sustituye al argumento x
por un valor concreto, y se siguen las instrucciones (cada vez que aparezca x en esas instrucciones, hay que
reemplazarlo por ese valor concreto), se obtiene un caso o instancia del algoritmo. Cuando se usa el algoritmo
para evaluar una instancia, por ejemplo para x = 6, se dice que se ha invocado (o corrido, o llamado, o ejecutado)
el algoritmo con el argumento x = 6.
No es obligatorio que una función tenga un solo argumento. Por ejemplo:
M (x, y) =
si (x ≥ y) contestar x
sino contestar y
17
18 2. EL CONJUNTO DE LOS NÚMEROS ENTEROS. DIVISIBILIDAD

Es fácil ver que esta función contesta el mayor entre x e y. Por esa razón, podríamos haber elegido un nombre
más representativo de la función, en lugar del simple M (x, y). Podría haber sido, por ejemplo, máx(x, y). De
paso, ejemplificamos que no es obligatorio que el nombre de una función sea de una sola letra.
Recalquemos que toda función escrita en notación algorítmica debe comenzar con una línea en donde se
especifica el nombre de la función y la lista de argumentos que recibe, entre paréntesis. Todo eso seguido de un
signo “=”, para indicar que a partir de allí comienza la lista de instrucciones.

1.1. Las instrucciones básicas de la notación algorítmica.


1.1.1. Instrucciones de retorno. Una instrucción que no puede faltar en ningún algoritmo es contestar.
Indica que lo que viene a continuación es el resultado de la evaluación de la función, o sea, lo que la función
devuelve. Ese resultado puede ser un número, un par ordenado de números, un conjunto, etc.; depende de lo
que se pretende que conteste el algoritmo (por ejemplo, un algoritmo para calcular el máximo de un conjunto
numérico contestará un número, un algoritmo para calcular el cociente y resto de la división entre dos números
naturales contestará un par ordenado, un algoritmo para obtener todos los primos menores o iguales que un
cierto número natural devolverá un conjunto, y así). Si bien es obligatorio que aparezca al menos una vez, es
frecuente que la instrucción contestar aparezca varias veces en un algoritmo, como ocurre en los ejemplos que
hemos presentado más arriba.
1.1.2. Instrucciones de asignación. Puede darse el caso en que el procedimiento para evaluar una función
no sea muy directo como en los ejemplos anteriores, sino que requiera de muchos cálculos intermedios para llegar
a la respuesta final. Tal vez, esos cálculos demanden guardar temporalmente ciertos valores. Por esa razón, en
la notación algorítmica contaremos con variables para guardar en ellas esos valores intermedios necesarios para
llevar a cabo la evaluación de la función. Entonces, necesitamos instrucciones de asignación para asignar
valores a variables. Instrucciones de este tipo comienzan siempre con la palabra sea (como en la demostración
de teoremas). Por ejemplo, “sea z = 5” indica que, de ahora en más, durante la ejecución del algoritmo, cada
vez que aparezca la variable z, ésta debe reemplazarse por el valor 5 (a menos que otra instrucción de asignación
modifique el valor de la misma variable z).
Ejemplo 2.1. Considerar la función de Z en Z dada por
g(x) =
sea n = x − 20
si (n > 2x) contestar 3n
sino contestar 1 − nx
1. Evaluemos g(12). El argumento con que se invoca a la función (la notación indica que es x) debe
establecerse en el valor 12. La primera instrucción a seguir es hacer n = 12 − 20 = −8. O sea, a partir
de ahora, en todo el proceso de evaluación de g(12), n vale −8 (a menos que más adelante, durante
la misma evaluación, encontrásemos otra orden de asignar otro valor a n). Luego hay que verificar si
n > 2x: valiendo x = 12 y n = −8, la condición no se cumple, por lo que hay que ir por la línea del
“sino” (enseguida nos ocuparemos más en detalle de este tipo de instrucciones), que indica contestar
1 − (−8)12. Luego, g(12) = 97.
2. Para evaluar g(−30), establecemos x = −30; luego, empezando con la primera instrucción del algoritmo,
asignamos a n el valor −50. Ahora comparamos si −50 > 2(−30), y como eso es verdad, contestamos
3(−50) = −150. Luego, g(−30) = −150. 
A veces, en una operación de asignación, la variable que recibe el valor puede aparecer también a la derecha
del operador “=” de asignación. Por ejemplo: “sea n = n · x”. Se sobreentiende que ambas variables a la derecha
deben ya tener un valor previamente asignado, y que el valor de n a la derecha es el valor con que viene n
hasta antes de ejecutar la actual instrucción de asignación. Por ejemplo, suponiendo que, de acuerdo a todas las
instrucciones ejecutadas desde el inicio de un algoritmo, lleguemos con n = 8 y x = 3, hasta un punto en que
nos topamos con la instrucción “sea n = n · x”; ésta hace que n pase a valer, de ahora en más, 24 (y x queda
como estaba, es decir, valiendo 3, pues nadie dijo nada de asignarle a x un nuevo valor). Observación: jamás
debe interpretarse una instrucción de éstas como una ecuación.
Habrá circunstancias en que en una sola instrucción de asignación necesitemos asignar valores a varias
variables. Usaremos para ello la notación de uplas ordenadas. Por ejemplo, la instrucción sea (a, b, c) = (7, 2, 9)
indica asignar a a el valor 7, a b el 2, y a c el 9.
1.1.3. Instrucciones condicionales. Otro tipo de instrucción que puede aparecer en la especificación de un
algoritmo (y que ya vimos en ejemplos anteriores) es la verificación de si una dada condición se cumple o no, y
lo que hay que hacer en caso de que se cumpla, y lo que hay que hacer en caso de que la condición no se cumpla.
Estas instrucciones se llaman condicionales. Típicamente, responden al siguiente esquema:
si (condición) lista1
sino lista2
1. LA NOTACIÓN ALGORÍTMICA 19

donde condición es una proposición, y lista1 y lista2 son a su vez más conjuntos de instrucciones. En este caso,
lo primero que hay que hacer es evaluar si la condición es verdadera; si lo es, las instrucciones que hay que seguir
son las de lista1 (y no las de lista2), y si la condición es falsa, hay que ponerse a ejecutar todas las instrucciones
de lista2 (ignorando completamente las instrucciones que haya en lista1). Por ejemplo, supongamos que má nos
dice: “Hoy comemos fideos. Andá al almacén; si tienen harina y huevos, comprame un poco de ambos (así los
amaso aquí) y, si no, traeme un paquete de fideos”. Si obedecemos la consigna al pie de la letra, la condición
a verificar es si en el almacén tienen harina y huevos, lista1 sería “comprar harina y comprar huevos”, y lista2
sería “comprar un paquete de fideos”.
Incluso habrá casos en que “sino lista2” puede faltar, y si la condición no se cumple, no hay que hacer
nada con lista1, y pasar a la instrucción siguiente, si es que la hay. Sería como si mamá nos hubiese dicho “andá
al almacén; si tienen harina y huevos, comprame un poco de ambos” (y no hacemos nada si no hay harina y
huevos). O bien, “andá al almacén; si tienen harina y huevos, comprame un poco de ambos. ¡Ah, cierto que se nos
acabó el azúcar! Comprame un kilo de azúcar, que seguro que tienen”. Si hubiera harina y huevos, compraríamos
harina, huevos y azúcar, y, si no, compraríamos sólo el azúcar.
En una instrucción condicional, puede que lista1 y/o lista2, como listas de instrucciones que son, tengan a
su vez anidadas otras instrucciones condicionales.
Ejemplo 2.2. Sea la siguiente función de enteros en enteros:
h(x) =
sea n = x − 20
si (n > 2x) contestar 3n
sino
sea n = n · x
si (n es par) contestar 1 − nx
sino contestar x2
(notar que hemos usado indentación, es decir, escritura con diferentes niveles de margen izquierdo, para facilitar
la comprensión; si un condicional tiene “si” y “sino”, es mejor que ambas palabras estén al mismo nivel, y que
las respectivas lista1 y lista2 queden más adentro todavía, especialmente si constan de varias instrucciones). 
El proceso de anidamiento puede ocurrir varias veces.
1.1.4. Invocación a otras funciones, y recursividad. Está permitido, en la notación algorítmica, que una
función invoque a otra función que haya sido previamente definida (o que se definirá después). Tal invocación
puede estar dentro de una instrucción de retorno, o de asignación (sólo a la derecha de “=”, obviamente), o en
una condicional (ya sea en la condición y/o en lista1 y/o lista2). Podríamos llamar “función madre” a la que
invoca a la otra, y “función hija” o “función auxiliar” a la invocada. Cuando en la ejecución de un algoritmo
se llega a una instrucción que contiene una invocación a otra función, hay que abocarse a la tarea de evaluar
la función hija, hasta obtener su valor, pero recordando en qué punto de la ejecución de la función madre se
quedó, para reanudar a partir de allí la tarea una vez que hayamos evaluado a la función hija. Es como si
estando en el almacén para comprar harina, huevos y azúcar, el dueño, después de vendernos harina y huevos,
nos diga “haceme la gauchada de llevarle esta nota a mi esposa que vive al frente, después te sigo atendiendo;
mil gracias”: suspendemos lo que estamos haciendo (la compra) para dedicarnos a la tarea de ayudar a nuestro
prójimo, pero acordándonos de que cuando terminemos éso, volveremos al almacén a seguir con las compras;
¿en qué habíamos quedado? ¡Ah, sí! El azúcar.
Ejemplo 2.3. Considerar las siguientes funciones f y j, de enteros en enteros:
f (x) =
si (x > 0) contestar x2
sino contestar 1 − x

j(x) =
2
si (x es par) contestar f (x)
sino
sea k = x + f (3x)
contestar f (k) − x
Para calcular j (x0 ), hay que empezar por la primera instrucción de la función j (x), verificando si x0 es par.
1. Si lo es, hay que contestar el cuadrado de f (x0 ). Para eso, momentáneamente interrumpimos nuestras
actividades dentro del desarrollo de j (x0 ), para abocarnos a calcular f (x0 ). Cuando lo tengamos,
volveremos al punto de la ejecución de j (x0 ) en que quedamos, y nos preguntamos para qué queríamos
f (x0 ). ¡Ah!, era para elevarlo al cuadrado y contestar eso como resultado de j (x0 ).
20 2. EL CONJUNTO DE LOS NÚMEROS ENTEROS. DIVISIBILIDAD

2. Si x0 no era par, hay que ir por el “sino”. En este caso, primero hay que hacer una asignación: a k
hay que darle el valor que resulta de sumar x0 con el resultado de la evaluación de f en 3x0 (para eso,
suspendemos momentáneamente el cálculo con j y nos ponemos a calcular f (3x0 ), que una vez obtenido
debe sumarse a x0 ). Luego procedemos a evaluar f (k) (nueva suspensión temporaria en el cálculo con
j), y a ese resultado le restamos x0 . Lo que así resulte será el valor de j (x0 ) en caso de ser x0 impar.
Ejemplos a verificar por el lector en relación a j (x): j (0) = 1, j (1) = 99, j (−2) = 9. 
De más está decir que la función hija puede, a su vez, invocar a otra función hija, y ésta a su vez a otra,
y así sucesivamente. En esos casos, a la hora de ejecutar un algoritmo, hay que prestar mucha atención al
punto en el que se queda al realizar cada nueva invocación, sin confundirse de puntos de suspensión temporal
correspondientes a distintas invocaciones.
Incluso está permitido que la función hija invoque a su función madre, como en el siguiente caso.
Ejemplo 2.4. Considerar
p(x) =
si (x > 0) contestar x2
sino contestar q(1 − x)
q(x) =
2
si (x es par) contestar p(2x)
sino contestar x + 2
Supongamos que queremos p (−3): nos damos con que debemos evaluar q (4) y contestar eso como valor de
p (−3).
2
Calculemos entonces q (4): vale p (8) , pues 4 es par.
Calculemos por lo tanto p (8), que vale 64 porque 8 > 0.
2
¿Para qué queríamos p (8)? Para contestar a q (4), que era p (8) = 642 = 4.096.
¿Para qué queríamos q (4)? Para contestar a nuestro p (−3) original, que vale justamente q (4). Luego, p (−3) =
4.096. 
Está permitido que, para evaluar una función, se invoque a otra función. Pero, sin dudas, uno de los mayores
atractivos de la notación funcional está en permitir que una función se invoque a sí misma, con otros argumentos.
Ya vimos un ejemplo de ésto en el Capítulo 1, cuando estudiamos la función definida de naturales en naturales
dada por 
1 si n = 0
t (n) =
2t (n − 1) si n 6= 0
Ejemplo 2.5. En nuestra notación algorítmica, la función anterior se escribe así:
t(n) =
si (n = 0) contestar 1
sino contestar 2t(n − 1)
Veamos cómo evaluar aquí t (3):
Empezamos con n = 3, y en la primera línea verificamos que n no es 0, por lo cual debemos contestar
2t (2). Entonces, interrumpimos todo lo que estamos haciendo para abocarnos a la tarea de calcular
t (2), y, una vez que lo tengamos, recordaremos para qué lo necesitábamos: para multiplicarlo por 2 y,
de esa manera, saber cuánto vale t (3).
¿Y cómo calculamos t (2)? Claro que con el mismo algoritmo, salvo que con n = 2. Como en este
caso n tampoco es 0, es t (2) = 2t (1).
¿Y t (1)? Con el mismo algoritmo, caso n = 1. Y vale 2t (0).
¿Y t (0)? Vale 1.
Por lo tanto, t (1) = 2t (0) = 2 · 1 = 2.
Por lo tanto, t (2) = 2t (1) = 2 · 2 = 4.
Y finalmente t (3) = 2t (2) = 2 · 4 = 8. 
Cuando para evaluar una función dada hace falta usar esa misma función, pero con otros argumentos, se dice
que la función se invoca a sí misma, recursivamente. Si el lector piensa un poco, se dará cuenta de que cuando
suma dos números a través de sus representaciones decimales, está aplicando un algoritmo altamente recursivo.
Por ejemplo, sumar 123 + 645 se reduce a sumar los dígitos 3 y 5 de la derecha, colocando el resultado de 8, y
luego proceder a sumar los números 12 y 64, colocando el resultado a la izquierda del 8. Es decir, el algoritmo
de suma se reduce a sumar los dígitos de la derecha y luego invocarse recursivamente con los mismos números
excepto que sin el último dígito (es un poquito más complicado, pues puede haber un “me llevo uno”, pero en
esencia es éso). La multiplicación y la división son también procedimientos recursivos. O sea que la recursividad
2. LOS NÚMEROS ENTEROS 21

está instalada en nuestras vidas desde hace mucho (¡aunque nosotros recién hoy vengamos a enterarnos!). La
recursividad bien usada produce sorprendentes efectos, como tendremos oportunidad de ver en este curso.
Cuidado con algoritmos recursivos como el siguiente:
v(n) =
si (n = 0) contestar 1
sino contestar v(n + 1)
Si intentamos evaluar v (1), seremos conducidos a evaluar v (2), que nos llevará a calcular v (3), que...
Entramos en un círculo vicioso del cual no saldremos jamás, excepto que optemos por abortar la ejecución del
algoritmo, de la misma manera que muchas veces optamos por resetear la PC cuando ésta se ha colgado (es
decir, cuando ha entrado en un ciclo sin salida). El diseño de algoritmos recursivos debe ser cuidadoso en este
aspecto: no debe conducir a situaciones de ciclos infinitos. En general, un algoritmo recursivo debe contener
casos de salida garantizada, (como el caso n = 0 en el ejemplo 2.5) y las sucesivas llamadas recursivas que se
produzcan deben conducir a uno de esos casos de salida garantizada.
Observar que, en el ejemplo 2.5, para calcular t (3) ha sido necesario utilizar el algoritmo 4 veces: una vez
con n = 3, otra con n = 2, otra con n = 1 y otra con n = 0. Decimos entonces que fueron necesarias cuatro
invocaciones al algoritmo t para calcular t (3). Podemos sospechar, y no nos equivocaremos, que, en general,
el número de invocaciones a un algoritmo recursivo dependerá de cuáles sean sus argumentos. Muchas de las
consideraciones que haremos en algoritmos que estudiemos en este curso harán inducción matemática sobre el
número de invocaciones necesarias para un dado argumento. Por ejemplo, si queremos demostrar que la función
del ejemplo 2.5 termina contestando 2n (es decir, que cualquiera sea n se tiene t (n) = 2n ) podemos proceder
mostrando que: a) Para cuando se requiere una sola invocación, el algoritmo contesta lo que sospechamos, y
b) Suponiendo que el algoritmo contesta lo que sospechamos cuando se requieren k invocaciones, mostrar que
contesta lo que sospechamos cuando se necesitan k + 1 invocaciones. En el caso del ejemplo 2.5, sospechamos
que cuando el argumento es n, el algoritmo contesta 2n . Verifiquémoslo procediendo como dijimos:
1. Si se necesita una sola invocación, es porque se hizo con n = 0. En ese caso, 20 = 1, y efectivamente
t (0) = 1. Entonces, es cierto que t (n) = 2n para cuando se necesita una sola invocación al algoritmo.
2. Supongamos que toda vez que se necesitan k invocaciones al algoritmo para evaluar t en un dado n′ ,

es cierto que t (n′ ) = 2n . Sea n tal que para calcular t (n) se necesiten k + 1 invocaciones. Está claro
que la primera invocación es con n, y las k restantes surgen de invocar con n − 1. Nuestra hipótesis
de inducción nos dice entonces que t (n − 1) = 2n−1 . Y entonces, de acuerdo a cómo está definido el
algoritmo, es t (n) = 2t (n − 1) = 2 · 2n−1 = 2n . Entonces, es cierto que t (n) = 2n toda vez que la
evaluación de t (n) requiera de k + 1 invocaciones al algoritmo t.
Bueno, basta ya de teoría general de computación. Volvamos a la aritmética.

2. Los números enteros


Ya tenemos conceptualizado al conjunto de los números naturales N, con sus operaciones básicas de suma
y producto, y su orden usual. Nuestra meta es ahora presentar al conjunto de los números enteros, con sus
operaciones básicas y su relación de orden, basándonos en los números naturales. Designemos por Z+ al conjunto
de los naturales positivos, es decir, Z+ = {1, 2, 3, . . .}. Definamos Z− del siguiente modo: por cada elemento n
de Z+ , fabriquemos un nuevo elemento anteponiéndole el signo −; es decir, consideremos −n. El conjunto de
todos los elementos así obtenidos conforme n varía en Z+ es precisamente Z− . O sea,

Z− = −n : n ∈ Z+ = {−1, −2, −3, −4, . . .}
Ahora estamos en condiciones de escribir lo que para nosotros, en este curso, es el conjunto Z de los
números enteros1, con sus operaciones básicas y su relación de orden usual (que resultarán coherentes con las
de los números naturales, en el caso en que los operandos sean números naturales):
Z = Z− ∪ N = Z− ∪ {0} ∪ Z+ = {. . . , −3, −2, −1, 0, 1, 2, 3, . . .}
1. Suma: Sean z1 y z2 dos enteros.
a) Si ambos son naturales, usamos la suma habitual de números naturales.
b) Si ambos están en Z− , digamos z1 = −n1 y z2 = −n2 para n1 , n2 ∈ Z+ , es z1 + z2 = − (n1 + n2 ).
c) Si uno está en N y el otro en Z− , digamos z1 = n1 y z2 = −n2 para n1 ∈ N y n2 ∈ Z+ , distinguiremos
dos casos:
1) Si n1 ≥ n2 , entonces z1 + z2 = n1 − n2 (la resta de ambos números naturales).
2) Si n1 < n2 , entonces z1 + z2 = − (n2 − n1 ).
2. Producto: Sean z1 y z2 dos enteros.
a) Si al menos uno de ellos es 0, el producto es 0.
1Hay una manera formal de definir el conjunto de los números enteros a partir de los naturales, y se verá detalladamente en
Fundamentos de la Matemática.
22 2. EL CONJUNTO DE LOS NÚMEROS ENTEROS. DIVISIBILIDAD

b) Si ambos son naturales, usamos el producto habitual de números naturales.


c) Si uno está en Z+ y el otro en Z− , digamos z1 = n1 y z2 = −n2 para n1 ∈ N y n2 ∈ Z+ , entonces
z1 z2 = − (n1 n2 ).
d ) Si ambos están en Z− , digamos z1 = −n1 y z2 = −n2 para n1 , n2 ∈ Z+ , es z1 z2 = n1 n2 .
Si z ∈ Z, −z representa a (−1) z, teniendo entonces que −0 = 0 y que − (−z) = z.
3. Orden: Sean z1 y z2 dos enteros.
a) Si ambos son naturales, los comparamos con el orden usual de los naturales.
b) Si uno está en N y el otro en Z− , es mayor el natural.
c) Si ambos están en Z− , digamos z1 = −n1 y z2 = −n2 para n1 , n2 ∈ Z+ , será −n1 ≤ −n2 si n1 ≥ n2
(en esta última, estamos empleando el orden usual de los naturales).
Los enteros menores que 0 se llaman enteros negativos, y los mayores que 0, enteros positivos.
El módulo o valor absoluto de un entero z se denota, como usualmente, por |z|, y vale z si z ≥ 0, y
−z si z < 0. Todas las propiedades conocidas acerca del módulo de números reales valen, por supuesto,
para el conjunto de los enteros.
Adviértase que, así como están definidas, las operaciones y relación de orden en Z coinciden con lo que
sabemos de los cursos anteriores acerca de los enteros. Además, para z1 y z2 enteros, se cumple que z1 ≤ z2
si, y sólo si, existe n ∈ N tal que z1 + n = z2 . Es bastante directo verificar que la suma en Z es cerrada,
asociativa, conmutativa, tiene elemento neutro 0, y que cada z ∈ Z tiene su inverso aditivo (u opuesto) que es
−z. Con respecto al producto, es cerrado, asociativo, conmutativo y tiene elemento neutro, el 1. Además, se
cumple la propiedad distributiva del producto respecto de la suma: ∀a, b, c ∈ Z, a (b + c) = ab + ac. Vale la ley
cancelativa de la suma y del producto por un número no nulo en igualdades, la ley cancelativa de términos en
desigualdades, la ley cancelativa de factores positivos en desigualdades, y mucho cuidado con la cancelación de
factores negativos (no olvidarse de dar vuelta la desigualdad en ese caso). Además, al igual que en N, no hay
divisores de 0: ab = 0 ⇔ (a = 0 ∨ b = 0).
Debe notarse que Z, con su orden usual, no es un conjunto bien ordenado, pues por ejemplo Z− no tiene un
mínimo elemento (ya que no existe un número natural que sea mayor que todos los otros números naturales).
Sin embargo, dado cualquier número entero z0 , el conjunto Dz0 = {z ∈ Z : z ≥ z0 } es bien ordenado (adivine el
lector por qué hemos usado la letra D de “Derecha”). En efecto, sea S cualquier subconjunto no vacío de Dz0 .
Notemos que para cualquier z ∈ S, es z ≥ z0 , por lo que z − z0 ∈ N si z ∈ S. Hagamos T = {z − z0 : z ∈ S}, que
resultará entonces ser subconjunto no vacío de N. Como tal, tiene mínimo elemento m. Ese m, por pertenecer
a T , debe ser de la forma m′ − z0 para algún m′ ∈ S. ¿Puede haber algún elemento menor que m′ en S? No,
porque de haber un n ∈ S tal que n < m′ , n − z0 pertenecería a T y cumpliría n − z0 < m′ − z0 = m, que no
puede ser pues m es el mínimo elemento en T . Por lo tanto, m′ es el mínimo elemento de S.

3. La división de números naturales


Citando a T. Hibbard, “el mejor modelo de un número natural es una fila de palos” (o de caramelos, o de
personas, agrego yo). Sumar dos naturales equivale a poner las dos respectivas filas una a continuación de la
otra y contar cuántos palos quedan en total. La resta a − b (con a ≥ b) quiere decir sacar de la fila de palos de
a una cantidad de palos igual a los que haya en b, y ver cuántos quedan. Multiplicar a por b equivale a hacer b
copias de los palos de a, una copia a continuación de la otra, y ver cuántos palos quedan en total. Vamos con
la división ahora.
Dividir conlleva la idea de repartir, o distribuir. En la división de números naturales, se trata de distribuir
los caramelos que haya en una bolsa llamada dividendo entre los individuos que componen el divisor (se supone
que hay siempre al menos un individuo allí) de la manera más equitativa posible, pero sin partir los caramelos
(ni por la mitad, ni de ninguna otra forma). ¿Cómo se hace entonces éso? Supongamos que hay a caramelos y
b receptores. El sentido común nos dice que primero veamos si hay suficientes caramelos para dar al menos uno
a cada uno de los b personajes (o sea, que veamos si a ≥ b).
1. Si no es así, ya está lista la repartija: ninguno de los individuos recibe nada, es decir, reciben 0 caramelos
cada uno.
2. Si fuese a ≥ b, pues bien, demos un caramelo a cada uno. Entonces, hasta el momento, cada individuo
habrá recibido 1 caramelo, y quedarán por distribuir a − b caramelos. El sentido común nos dice que
primero veamos si entre esos a − b caramelos, hay suficientes como para dar al menos uno a cada uno
de los b personajes (o sea, que veamos si a − b ≥ b).
a) Si no es así, ya está lista la repartija: cada individuo se queda con 1 caramelo que le ha sido entregado
en la primera vuelta.
b) Si fuese a − b ≥ b, pues bien, demos un caramelo a cada uno. Entonces, hasta el momento, cada
individuo habrá recibido 2 caramelos, y quedarán por distribuir a − 2b caramelos. El sentido común
nos dice...
3. LA DIVISIÓN DE NÚMEROS NATURALES 23

Y así seguimos (¡recursivamente!) hasta que, después de haber entregado caramelos a cada uno en sucesivas
rondas, la cantidad remanente no alcance para dar un caramelo más a cada uno. El cociente de la división
entre a y b es la cantidad de caramelos que ha sido posible entregar a cada individuo, y el resto de la
división entre a y b es esa cantidad remanente que ya no alcanza para dar una ronda más de caramelos a los
participantes. Obviamente, multiplicando el cociente por el divisor y sumando el resto obtenemos el dividendo.
Dicho de otro modo, en términos de palos, empaquetamos de a b elementos los palos en la fila de palos que
corresponde a a (dejando sueltos a los palos que ya no alcancen para formar un nuevo grupo de b elementos).
La cantidad de paquetes completos que hayamos podido hacer corresponde al cociente, y la cantidad de palos
sueltos no empaquetados corresponde al resto de la división entre a y b.
El sentido común nos dice que vamos a poder dividir cualquier a ∈ N por cualquier b ∈ N − {0}, obteniendo
un cociente y un resto, y que esos números obtenidos serán únicos independientemente de si a la repartija la hago
yo hoy, o yo mañana, o mi tío pasado mañana. Es decir, hay una noción intuitiva de existencia y de unicidad
del cociente y resto de una división entre números naturales. Formalicemos todas estas nociones intuitivas.

Teorema 2.6. (Teorema de la división de números naturales) Sean a y b dos números naturales,
con b 6= 0. Existe un único par de números naturales c y r con r < b tales que a = cb + r.

Demostración. Consideremos el conjunto M = {x ∈ N : ∃k ∈ N : a = kb + x}. Se trata de un conjunto


no vacío (pues tomando k = 0 vemos que al menos a ∈ M ). Por lo tanto, de acuerdo al PBO, M posee un
mínimo elemento, llamémosle r. Por pertenecer a M , ese r es un natural que admite la existencia de c ∈ N tal
que a = cb + r. Si fuese r ≥ b, tendríamos que a = (c + 1)b + (r − b) con c + 1 y r − b naturales, lo que mostraría
que r − b estaría también en M , y eso nos llevaría a una contradicción (pues r − b < r por ser b ≥ 1, pero a
la vez r − b ≥ r por ser r mínimo en M ) que provendría de suponer r ≥ b. Por lo tanto, r debe ser un natural
menor que b.
Hasta el momento, hemos probado la existencia de una pareja de números naturales c y r tales que a = cb+r
con r < b. Para terminar de demostrar el teorema, falta ver la unicidad. Sean c′ y r′ dos números naturales tales
que a = c′ b + r′ con r′ < b. Dado que r ≥ 0 y r′ < b, tenemos que cb ≤ cb + r y c′ b + r′ < c′ b + b = (c′ + 1)b. Es
decir,
cb ≤ cb + r = a = c′ b + r′ < (c′ + 1)b

de donde c < c′ + 1, o, equivalentemente, c ≤ c′ . Análogamente, como r′ ≥ 0 y r < b, tenemos que c′ b ≤ c′ b + r′


y cb + r < cb + b = (c + 1)b. Es decir,

c′ b ≤ c′ b + r′ = a = cb + r < (c + 1)b

de donde c′ < c + 1, o, equivalentemente, c′ ≤ c. Juntando las dos desigualdades obtenidas, resulta que c′ = c,
y, puesto que cb + r = c′ b + r′ , también se tiene que r′ = r . Luego, el par de naturales c y r es el único que
satisface las condiciones del enunciado del teorema. 

Definición 2.7. Sean a y b números naturales, con b 6= 0. Los únicos números naturales c y r tales que
a = cb + r con r < b se denominan, respectivamente, cociente y resto de la división entre a y b, denotados
c (a, b) y r (a, b).

A título ilustrativo, mostremos cómo aplicar el PCMC a la demostración de la existencia del par de naturales
c y r del teorema anterior: Sean a ∈ N y b ∈ N − {0} tales que el par (a, b) es un contraejemplo a lo dicho
en el teorema respecto de la existencia del par (c, r). ¿Puede ser a < b? No, porque bastaría tomar c = 0 y
r = a para satisfacer el enunciado. Entonces es a ≥ b. Pero, en ese caso, es a − b ∈ N. Entonces, el par (a − b, b)
es también un contraejemplo a la existencia de cociente y resto, pues si existiesen naturales c′ y r′ tales que
a − b = c′ b + r′ con r′ < b, tendríamos a = (c′ + 1) b + r′ , es decir, bastaría tomar c = c′ + 1, que pertenecería
a N, y r = r′ < b para ver que el par (a, b) no es contraejemplo (contradiciendo que sí lo es). En resumen, si
(a, b) es un contraejemplo al enunciado de existencia, el par (a − b, b) también es contraejemplo (y más chico en
primera componente, pues, siendo b > 0, es a − b estrictamente menor que a).
Si hemos interpretado correctamente el teorema de la división, debemos ser capaces de ver que, ya que
15 = 2 · 7 + 1, la división entre 15 y 7 produce cociente 2 y resto 1, y la división entre 15 y 2 produce cociente 7
y resto 1. De observar que 19 = 3 · 5 + 4, podemos concluir sólo que la división entre 19 y 5 produce cociente 3
y resto 4, pero no podemos decir que la división entre 19 y 3 produce cociente 5 y resto 4, pues 4 es mayor que
3 (es más, podemos estar seguros de que ni el cociente es 5 ni el resto es 4). En general, si vemos una igualdad
del tipo p = mq + n con p, q, m, n naturales, q 6= 0 y n < q, podemos estar seguros de que el cociente entre p y
q es m, y el resto es n. Tal igualdad se denomina ecuación de la división entre p y q.
El enunciado del teorema de la división no da explícitamente la manera de calcular c y r, pero la demostra-
ción, indirectamente, sí: búsquese el mayor c tal que cb ≤ a, y hágase r = a − bc. Es lo que nuestro algoritmo
24 2. EL CONJUNTO DE LOS NÚMEROS ENTEROS. DIVISIBILIDAD

de reparto equitativo de caramelos hacía. ¿Algoritmo, dijimos? Claro, y entonces escribamos en notación algo-
rítmica el algoritmo para calcular el cociente entre a y b (y qué mejor que llamarlo c (a, b)):
c(a, b) =
si (a < b) contestar 0
sino contestar 1 + c(a − b, b)
Era de esperar que hubiera una invocación recursiva, en el caso en que a ≥ b: habiendo repartido ya un
caramelo a cada uno en la primera vuelta, y quedando a − b caramelos a repartir entre b, lo que cada individuo
se lleve en el bolsillo será lo que le toque de esta última repartija (c (a − b, b)), más el caramelo que recibió en
primera vuelta. Observar que, restando de b en b , lo que estamos haciendo es buscar el mayor c tal que cb que
no supera a a.
¿Y el resto? Sale del siguiente algoritmo, r (a, b):
r(a, b) =
si (a < b) contestar a
sino contestar r(a − b, b)
Hicimos uso aquí de la siguiente propiedad: si a ≥ b, el resto de la división entre a y b es el mismo que el
de la división entre a − b y b: sean c y r los naturales tales que a − b = cb + r con r < b, cuya existencia está
garantizada por el teorema. Entonces, a = (c + 1) b + r con c + 1 ∈ N y r < b. Entonces, por unicidad, el cociente
entre a y b es una unidad mayor que el cociente entre a − b y b (otra manera de ver que el algoritmo c (a, b)
anda bien), y el resto de la división entre a y b es el mismo que el resto de dividir a − b por b (confirmando que
nuestro algoritmo r (a, b) también anda bien).
Podemos juntar los dos algoritmos en uno solo, cr (a, b), que conteste al mismo tiempo cociente y resto de
a dividido b:
cr(a, b) =
si (a < b) contestar (0, a)
sino contestar (1, 0) + cr(a − b, b)
(con la convención de que sumar pares ordenados se hace sumando componente a componente, y que la primera
componente de un par es un cociente, y la segunda un resto).
¿Cómo calculamos cr (19, 5)? Arrancamos haciendo a = 19 y b = 5.
cr (19, 5) = (1, 0) + cr (14, 5)
cr (14, 5) = (1, 0) + cr (9, 5)
cr (9, 5) = (1, 0) + cr (4, 5)
cr (4, 5) = (0, 4) (pues, en esta instancia, a = 4 < 5 = b, y no hace falta invocación
recursiva).
Entonces, cr (9, 5) = (1, 0) + (0, 4) = (1, 4).
Entonces, cr (14, 5) = (1, 0) + (1, 4) = (2, 4).
Entonces, cr (19, 5) = (1, 0) + (2, 4) = (3, 4).
Pruebe con calcular cociente y resto de 123.456.789 dividido 13 mediante invocación al algoritmo cr. ¡Claro que va a
tardar larguísimo tiempo! Harán falta más de nueve millones de invocaciones, pues la diferencia entre el primer argumento
y el segundo es enorme. Resulta que nos encontramos con una cuestión crucial en Ciencias de la Computación: tenemos
un algoritmo para hacer algo, pero, ¿es el mejor?, ¿el más rápido?, ¿el más fácil de ejecutar? Puede ocurrir que una misma
tarea pueda ser ejecutada de muy diferentes modos, y algunos sean más eficientes que otros, en algún sentido. Sin dudas,
una buena medida de la eficiencia de un algoritmo recursivo es la cantidad de invocaciones recursivas que se requieren en
una determinada ejecución del mismo. Cuantas menos invocaciones, más eficiente. Invitamos a encontrar cociente y resto
de 123.456.789 dividido 13 mediante invocación al siguiente algoritmo, cr10 (a, b), que aprovecha nuestra capacidad de
multiplicar rápida y fácilmente por 10:
cr10(a, b) =
si (a < b) contestar (0, a)
sino
sea (c, r) = cr10(a, 10b)
sea (c′ , r′ ) = cr(r, b)
contestar (10c + c′ , r′ )
Ante todo, aclaramos que cr10 es otro algoritmo para la misma tarea de dividir: cr10 (a, b) = cr (a, b) cualesquiera
sean a y b. Se puede observar que el algoritmo cr10 invoca al cr , pero, cuando es así, los argumentos con que lo hace
son de magnitudes similares, y no requieren más de 10 invocaciones recursivas. Hacen falta no más de 90 invocaciones
en total a cr10 y cr para calcular cociente y resto de 123.456.789 dividido 13. Mucho mejor que las nueve millones. Si
bien aquí no lo hacemos, es fácil demostrar (por inducción en el número de invocaciones) que el nuevo algoritmo calcula
bien cociente y resto de cualquier división entre naturales. Pasar de un algoritmo como cr a uno más eficiente como
3. LA DIVISIÓN DE NÚMEROS NATURALES 25

cr10 depende mucho del conocimiento que se tenga acerca de las propiedades de los números, pues la propia definición
de división no aclara nada al respecto, y, con ella, lo más óptimo que se pudo hacer es el diseño de cr .

3.1. Divisibilidad en el campo de los naturales.


Definición 2.8. Sean a y b dos naturales, con b 6= 0. Se dice que b divide a a si el resto de la división
entre a y b es 0.
Cuando b divide a a, también se dice que b es factor de a, o que b es un divisor de a, o que a es un
múltiplo de b, o que a es divisible por b, y señalamos el hecho con la notación b | a. Del teorema de la
división, deducimos que, para b 6= 0,
b | a ⇐⇒ ∃c ∈ N : cb = a
Recalquemos que para tener que b | a, hemos pedido b 6= 0 (por lo que, cuando escribamos b | a, daremos
por sobreentendido que b 6= 0). Por lo tanto, 0 no divide a ningún natural. Además, cualquier natural no nulo
divide a 0 (∀a ∈ N − {0} , 0 = 0 · a), 1 divide a cualquier natural (∀a ∈ N, a = a · 1), y cualquier natural a 6= 0
es divisible por sí mismo (∀a ∈ N − {0} , a = 1 · a).
Supongamos que b | a y que a | d. Entonces, b | d, pues existen naturales c1 y c2 tales que a = c1 b y d = c2 a,
de donde d = (c1 c2 ) a con c1 c2 ∈ N. La divisibilidad es una relación transitiva en el conjunto de los naturales
(¿es un orden total? ¿estricto? ¿amplio?).
Deduzcamos ahora otras propiedades de la divisibilidad.
Proposición 2.9. Sean a y b naturales no nulos. Si b | a, entonces es b ≤ a.
Demostración. Supongamos que b | a. Existe c ∈ N tal que a = bc. Como a 6= 0, es c 6= 0, y por lo tanto
c ≥ 1, de donde, por uniformidad del producto en desigualdades, resulta a = bc ≥ b. 
De la simple pero importante propiedad recién demostrada, se deduce que todo natural no nulo tiene
una cantidad finita de factores.
Proposición 2.10. Sean a y b naturales no nulos tales que b | a y que a | b. Entonces es a = b.
Demostración. Por la proposición 2.9, tenemos que b ≤ a y a ≤ b. Luego a = b. 
Proposición 2.11. Sean a1 , a2 y b naturales, y supongamos que b | a1 y que b | a2 (es decir, supongamos
que b es un divisor en común que tienen a1 y a2 ). Entonces, b | xa1 + ya2 cualesquiera sean los naturales x
e y. Es decir, b divide a cualquier combinación lineal a coeficientes naturales de a1 y de a2 .
Demostración. Sean x, y ∈ N. Por hipótesis, existen naturales c1 y c2 tales que a1 = c1 b y a2 = c2 b, por lo
que xa1 = xc1 b e ya2 = yc2 b, así que xa1 + ya2 = (xc1 + yc2 ) b siendo xc1 + yc2 ∈ N. Entonces, b | xa1 + ya2 . 
La propiedad anterior puede generalizarse del siguiente modo:
Proposición 2.12. Supongamos que b | a1 , b | a2 , ..., b | ak . Entonces b divide a cualquier combinación
lineal a coeficientes naturales de a1 , a2 , ..., ak .
Proposición 2.13. Sean a1 , a2 y b naturales tales que b | a1 . Se tiene que b | a1 + a2 si, y sólo si, b | a2 .
Demostración. Para demostrar la ida: como b | a1 , existe c1 ∈ N tal que a1 = c1 b. Supongamos que
a1 + a2 = c2 b con c2 ∈ N. Entonces, a2 = c2 b − a1 = c2 b − c1 b = (c2 − c1 ) b, de donde se desprende que
c2 − c1 ∈ N (pues b > 0) y, por lo tanto, b | a2 .
Para la vuelta: Si b | a2 , como b | a1 , por aplicación de la proposición 2.11, se tiene que b | a1 + a2 . 
Generalizamos la proposición anterior:
Proposición 2.14. Sean a1 , a2 , ..., ak , ak+1 y b naturales dados, y supongamos que b | a1 , b | a2 , ...,
b | ak . Se tiene que b | a1 + a2 + · · · + ak + ak+1 si, y sólo si, b | ak+1 .
La última propiedad permite demostrar varios de los criterios de divisibilidad aprendidos hace ya tiempo.
Por ejemplo, para la divisibilidad por 8, sabemos que si un número tiene más de tres dígitos, alcanza con ver
si el número formado por esos tres últimos dígitos es divisible por 8. Por ejemplo, según el criterio, 123.456.800
resulta divisible por 8, pues 800 lo es. ¿De dónde sale el criterio? Sea n un número natural cuyos dígitos, de
derecha a izquierda, son a0 , a1 , ..., ak . Entonces, n = a0 + 10a1 + 100a2 + 1.000a3 + 10.000a4 + · · · + 10k ak .
Notemos que 8 | 1.000, 8 | 10.000, y, en general, 8 | 10k si k > 2. Por la proposición 2.14, se sigue que 8 | n si,
y sólo si, 8 divide a a0 + 10a1 + 100a2 , que es lo mismo que decir que 8 divide al número formado por los tres
últimos dígitos del número original.
Para la divisibilidad por 3, sea n = a0 + 10a1 + 100a2 + · · · + 10k ak . Entonces:

n = a0 + (10 − 1) a1 + (100 − 1) a2 + · · · + 10k − 1 ak + a1 + a2 + · · · + ak

= (a0 + a1 + a2 + · · · + ak ) + 9a1 + 99a2 + · · · + 10k − 1 ak
26 2. EL CONJUNTO DE LOS NÚMEROS ENTEROS. DIVISIBILIDAD


Dado que 3 | 9a1 , 3 | 99a2 , ..., 3 | 10k − 1 ak , por la proposición 2.14, 3 | n si, y sólo si, 3 | a0 + a1 + · · · + ak .
Es decir, la suma de los dígitos de n debe ser un múltiplo de 3.
Más adelante, en este curso, veremos otra manera de deducir criterios de divisibilidad.

4. La división de números enteros


En el campo de los números naturales, dividir el natural a por el natural no nulo b comienza por buscar el
múltiplo de b más grande que no supera a a. Tal múltiplo debe ser cb para c ∈ N. Entonces c es el cociente entre a
y b. El resto se determina haciendo r = a − cb. Trasladaremos esta misma idea al campo de los números enteros,
a fin de definir división en Z. Para eso, digamos que dado b ∈ Z, con b 6= 0, el conjunto de múltiplos de b
es {kb : k ∈ Z}. Debe notarse que este conjunto no tiene cota superior ni inferior. Supongamos que deseamos
dividir el entero a por el entero no nulo b. Para nosotros, eso va a significar buscar el mayor múltiplo de b que
no supere a a, digamos que sea cb, para algún c ∈ Z. Hagamos r = a − cb. Entonces, c es el cociente y r el
resto de la división entre a y b.
Está claro que, en caso de ser a y b naturales, la división entera entre a y b coincide con la división natural
entre ellos. Veamos los siguientes ejemplos:
1. a = 10 y b = −3. Los múltiplos de −3 que circundan a 10 son 9 y 12. El mayor múltiplo de b que no
supera a a es 9 = (−3) (−3) = (−3) b. Por lo tanto, el cociente es c = −3. El resto es r = a − cb =
10 − (−3) (−3) = 1.
2. a = −10 y b = 3. Los múltiplos de 3 que andan cerca de −10 son −12 y −9. El mayor múltiplo
de b que no supera a a es −12 = (−4) 3 = (−4) b. Por lo tanto, el cociente es c = −4. El resto es
r = a − cb = −10 − (−4) 3 = 2.
3. a = −10 y b = −3. Los múltiplos de −3 más cercanos a −10 son −12 y −9. El mayor múltiplo de b
que no supera a a es −12 = 4 (−3) = 4b. Por lo tanto, el cociente es c = 4. El resto es r = a − cb =
−10 − 4 (−3) = 2.
4. a = 12 y b = −3. Los múltiplos de −3 en las cercanías de 12 son 9, 12, 15. El mayor múltiplo de
b que no supera a a es 12 = (−4) (−3) = (−4) b. Por lo tanto, el cociente es c = −4. El resto es
r = a − cb = 12 − (−4) (−3) = 0.
5. a = 0 y b = −3. Los múltiplos de −3 más cercanos a 0 son −3, 0, 3. El mayor múltiplo de b que no
supera a a es 0 = 0 (−3) = 0b. Por lo tanto, el cociente es c = 0. El resto es r = a − cb = 0 − 0 (−3) = 0.
Todo lo dicho anteriormente a nivel intuitivo sirve para comprender mejor el teorema de la división de
enteros, que enunciamos a continuación, y cuya demostración es muy similar a la del teorema de la división de
naturales.
Teorema 2.15. (Teorema de la división de números enteros) Sean a y b dos números enteros, con
b 6= 0. Existe un único par de números enteros c y r con 0 ≤ r < |b| tales que a = cb + r.
Demostración. Consideremos el conjunto M = {x ∈ N : ∃k ∈ Z : x = a − kb :}, que se trata de un con-
junto no vacío: tomando k = −|a||b|/b (que es entero pues |b|/b vale 1 o −1) se tiene que
|a||b|
a − kb = a + b = a + |a||b| ≥ a + |a| ≥ 0
b
Como M es un subconjunto no vacío de naturales, tiene mínimo elemento, llamémosle r. Entonces, es r = a − cb
para algún c ∈ Z. Como r ∈ M , es r ≥ 0. Falta ver que r < |b|.
1. Si b > 0, es (c + 1) b > cb por lo que a − (c + 1) b < a − cb. Como a − cb es el mínimo elemento en M ,
debe ser a − (c + 1) b < 0, por lo que a − cb − b < 0, y entonces a − cb < b, que es lo mismo que decir
r < |b|.
2. Si b < 0, es (c − 1) b > cb por lo que a − (c − 1) b < a − cb. Como a − cb es el mínimo elemento en M ,
debe ser a − (c − 1) b < 0, por lo que a − cb + b < 0, y entonces a − cb < −b, que es lo mismo que decir
r < |b|.
Como vemos, en cualquier caso es r < |b|.
Hasta el momento, hemos probado la existencia de una pareja de números enteros c y r tales que a = cb + r
con 0 ≤ r < |b|. Para terminar de demostrar el teorema, falta ver la unicidad. Sean c′ y r′ dos números enteros
tales que a = c′ b + r′ con 0 ≤ r′ < |b|. Entonces cb + r = c′ b + r′ , por lo que b (c − c′ ) = r′ − r, de donde
(D2) |b| |c − c′ | = |r − r′ |
Ya que 0 ≤ r < |b|, es − |b| < −r ≤ 0, y por lo tanto, como 0 ≤ r′ < |b|, resulta − |b| < r′ − r < |b|,
y entonces |r′ − r| < |b|. De allí que, observando (D2), sea |b| |c − c′ | < |b|, vale decir, |b| |c − c′ | − |b| < 0, o
equivalentemente |b| (|c − c′ | − 1) < 0. Pero |b| es natural. Luego, debe ser |c − c′ | − 1 < 0, o sea |c − c′ | < 1.
Como el único natural menor que 1 es 0, debe ser |c − c′ | = 0, de donde c′ = c. Con esto, volviendo a observar
(D2), tenemos que |r − r′ | = 0, y por lo tanto también es r′ = r. Luego, el par de enteros c y r es el único que
satisface las condiciones del enunciado del teorema. 
4. LA DIVISIÓN DE NÚMEROS ENTEROS 27

Definición 2.16. Sean a y b números enteros, con b 6= 0. Los únicos números enteros c y r tales que
a = cb + r con 0 ≤ r < |b| se denominan, respectivamente, cociente y resto de la división entre a y b,
denotados c (a, b) y r (a, b).
Podemos calcular el cociente y resto de la división de los enteros a y b con el auxilio del algoritmo de la
división de números naturales. Observemos que |a| y |b| son siempre números naturales, así que existen naturales
c y r tales que |a| = c |b| + r con 0 ≤ r < |b|. El desafío es ahora ver cómo usar ese c y ese r para encontrar
cociente y resto de la división entre a y b.
1. Supongamos que es a ≥ 0 y b < 0. Entonces, es a = c (−b) + r = (−c) b + r, con 0 ≤ r < |b|. Luego,
el cociente entre los enteros a y b es el opuesto del cociente entre los naturales |a| y |b|, y el resto es el
mismo.
2. Supongamos que es a < 0 y b > 0. Entonces, es −a = cb + r, con 0 ≤ r < |b|. Operando, tenemos que
a = (−c) b − r.
a) Si fuese r = 0, tenemos a = (−c) b, por lo que el cociente entre los enteros a y b sería −c, y el resto
0.
b) Si fuese r > 0, es a = (−c) b − r + b − b = (−c − 1) b + (b − r). Como era 0 < r < b, tenemos que
0 ≤ b − r < b. Luego, el cociente entre los enteros a y b es −c − 1, y el resto es b − r.
3. Supongamos que es a < 0 y b < 0. Entonces, es −a = c (−b) + r, con 0 ≤ r < |b|. Operando, tenemos
que a = cb − r.
a) Si fuese r = 0, tenemos a = cb, por lo que el cociente entre los enteros a y b sería c, y el resto 0.
b) Si fuese r > 0, es a = cb − r + b − b = (c + 1) b + (−b − r). Como era 0 < r < −b, tenemos que
0 ≤ −b − r < −b = |b|. Luego, el cociente entre los enteros a y b es c + 1, y el resto es −b − r.
Lo que hemos visto nos dice cómo encontrar cociente y resto de una división entre enteros, sabiendo encontrar
cociente y resto de una división entre naturales. Esto último era llevado a cabo por ejemplo por el algoritmo
cr (a, b), donde a y b son naturales. Podemos entonces escribir un algoritmo crent (a, b), apto para recibir a y b
enteros, y contestar el cociente y resto de a dividido por b.
crent(a, b) =
sea (c, r) = cr (|a|, |b|)
si (a ≥ 0)
si (b > 0) contestar (c, r)
sino contestar (−c, r)
sino
si (b > 0)
si (r = 0) contestar (−c, 0)
sino contestar (−c − 1, b − r)
sino
si (r = 0) contestar (c, 0)
sino contestar (c + 1, −b − r)
Por supuesto que la invocación a cr (|a| , |b|) podría reemplazarse por una llamada a cr10 (|a| , |b|) y el
algoritmo andaría igualmente bien, excepto que mucho más eficiente.
4.1. Algunas propiedades de la división. La más elemental de las propiedades nos dice, a grandes
rasgos, que si dividimos por b el resto de una división por b, obtenemos el mismo número como resto.

Proposición 2.17. Para todos a y b enteros con b 6= 0, es r r(a, b), b = r(a, b).
Demostración. Se tiene que a = c(a, b) · b + r(a, b) con 0 ≤ r(a, b) < |b|. Luego,r(a, b) = 0 · b + r(a, b) en
donde 0 ≤ r(a, b) < |b|. Luego, por el Teorema de la División, se tiene que r r(a, b), b = r(a, b). 
Supongamos que a, d y b son enteros con b 6= 0, y que conocemos cociente y resto de la división entre a y b,
y también cociente y resto de la división entre d y b. ¿Será posible conocer, en base a ello, cociente y resto de
a + d dividido b, y de ad dividido b, sin calcular a + d y ad? Tal vez, lo primero que se nos viene a la cabeza es
decir que r (a + d, b) = r (a, b) + r (d, b), es decir, que el resto de la suma es igual a la suma de los restos. Pero
un poco de reflexión nos advierte sobre el peligro que puede haber: individualmente, tanto r (a, b) como r (d, b)
son menores que |b|, pero puede que su suma no lo sea, y entonces, en ese caso, esa suma no puede ser el resto
de una división por b. Sin embargo, el teorema de la división nos da herramientas para averiguar r (a + d, b) sin
necesidad de sumar a con d.
Proposición 2.18. Sean a, d y b enteros con b 6= 0. Entonces,

c(a + d, b) = c(a, b) + c(d, b) + c r(a, b) + r(d, b), b

r(a + d, b) = r r(a, b) + r(d, b), b

r(ad, b) = r r(a, b) · r(d, b), b
28 2. EL CONJUNTO DE LOS NÚMEROS ENTEROS. DIVISIBILIDAD

Demostración. Del teorema de la división, existen enteros c1 , c2 , r1 y r2 tales que


a = c1 b + r1 0 ≤ r1 < |b|
d = c2 b + r2 0 ≤ r2 < |b|
Además, existen enteros c3 y r3 tales que r1 + r2 = c3 b + r3 con 0 ≤ r3 < |b|. Por lo tanto,
a+d = c1 b + r1 + c2 b + r2 = c1 b + c2 b + (r1 + r2 )
= c1 b + c2 b + c3 b + r3
= (c1 + c2 + c3 ) b + r3
Entonces, hemos expresado al número a + d como la suma entre un múltiplo de b y un entero no negativo
menor que |b|. Entonces, por el teorema de la división, es
c (a + d, b) = c1 + c2 + c3 = c (a, b) + c (d, b) + c (r1 + r2 , b)

= c (a, b) + c (d, b) + c r(a, b) + r(d, b), b
y también
r (a + d, b) = r3 = r (r1 + r2 , b)

= r r(a, b) + r(d, b), b
Listo lo referente a la suma. Para la aseveración relativa al producto ad, notemos que existen enteros c4 y
r4 tales que r1 r2 = c4 b + r4 con 0 ≤ r4 < |b|. Por lo tanto,
ad = (c1 b + r1 ) (c2 b + r2 ) = (c1 c2 b + c1 r2 + r1 c2 ) b + r1 r2
= (c1 c2 b + c1 r2 + r1 c2 ) b + c4 b + r4
= (c1 c2 b + c1 r2 + r1 c2 + c4 ) b + r4
Entonces, hemos expresado al número ad como la suma entre un múltiplo de b y un entero no negativo
menor que |b|. Entonces, por el teorema de la división, es
r (ad, b) = r4 = r (r1 r2 , b)

= r r(a, b) · r(d, b), b
quedando así probada la proposición. 
  
2
En particular, haciendo d = a en la proposición anterior, tenemos que r a2 , b = r (r (a, b)) , b . Podemos
generalizar esto así:
 n 
Proposición 2.19. Sean a, b ∈ Z con b 6= 0, y n un entero positivo. Entonces, r (an , b) = r r(a, b) , b .

Demostración. Haremos inducción sobre n ≥ 1.


1. El caso n = 1 es cierto, por la proposición
 2.17. 
n
2. Supongamos ahora que r (a , b) = r r(a, b) , b . Entonces,
n

 
r an+1 , b = r (an a, b) = r r (an , b) · r(a, b), b
  
n    n 
= r r r(a, b) , b · r r(a, b), b , b = r r(a, b) · r(a, b), b
 n+1 
= r r(a, b) ,b
y por lo tanto, la proposición se cumple para n + 1.

Esta última proposición es de gran ayuda, junto con la proposición 2.18, para encontrar restos de divisiones
de una potencia por un dado número, sobre todo si la potencia es alta y produce errores de desborde en la
calculadora con que contamos para hacer los cálculos.
Ejemplo 2.20. Calcular el resto de la división entre 12121 y 13. Tenemos que r (12, 13) = 12 y que
 60
r 122 , 13 = r (144, 13) = 1 pues 144 = 11 · 13 + 1. Además, 12121 = 122 12 = 14460 12. Aplicando las
proposiciones 2.18 y 2.19, aprovechamos todo esto de la siguiente forma:
   
r 12121 , 13 = r 14460 12, 13 = r r 14460 , 13 · r (12, 13) , 13
 60  
= r r(144, 13) · 12, 13 = r 160 · 12, 13 = r (12, 13) = 12

Entonces, el resto de la división entre 12121 y 13 es 12. 


5. NÚMEROS PRIMOS Y COMPUESTOS 29

Ejemplo 2.21. Calcular el resto de la división entre 534.567 y 8. Como r(52 , 8) = 1 y 34.567 = 2·17.283+1,
tenemos que 534.567 = 2517.283 · 5, de donde
         
r 534.567 , 8 = r r(5, 8)r 2517.283 , 8 , 8 = r 5r r(25, 8)17.283 , 8 , 8
   
= r 5r 117.283 , 8 , 8 = r(5, 8) = 5

4.2. Divisibilidad en el campo de los enteros. Extenderemos ahora el concepto de divisibilidad visto
para números naturales, al conjunto de los números enteros, con obvias modificaciones.
Definición 2.22. Sean a y b dos enteros, con b 6= 0. Se dice que b divide a a si el resto de la división
entre a y b es 0.
Seguimos usando frases como “es factor de”, o “es divisor de”, o “es múltiplo de”, o “es divisible
por”, y también usamos la notación b | a (sobreentendiendo que b 6= 0). Del teorema de la división de enteros,
surge que, para b 6= 0,
b | a ⇐⇒ ∃c ∈ Z : cb = a
0 no divide a ningún entero. Además, cualquier entero no nulo divide a 0 (∀a ∈ Z − {0} , 0 = 0 · a), 1 y −1
dividen a cualquier entero (∀a ∈ Z, a = a · 1 ∧ a = (−a) (−1)), y cualquier entero a 6= 0 es divisible por sí mismo
y por su opuesto (∀a ∈ Z − {0} , a = 1 · a ∧ a = (−1) (−a)). Se sigue cumpliendo la transitividad de la relación
“ser divisible por”.
Una propiedad importante, pues nos permitirá ignorar los signos a la hora de verificar divisibilidad entre
enteros, es la siguiente:

Proposición 2.23. Sean a y b enteros, con b 6= 0. Se tiene que b | a si, y sólo si, |b| |a|.
Demostración. Supongamos que b | a. Entonces existe c ∈ Z tal que a = cb, por lo que |a| = |c| |b| con
|c| ∈ N. Luego, |b| |a|.
Supongamos ahora que |b| | |a|. Existe c ∈ N tal que |a| = c |b|. Pero entonces es a = cb o a = (−c) b, y, en
cualquier caso, se tiene que b | a. 
Veamos ahora otras propiedades de la divisibilidad, correlato de las correspondientes propiedades de la
divisibilidad en naturales.
Proposición 2.24. Sean a y b enteros no nulos. Si b | a, entonces es |b| ≤ |a|.

Demostración. Como b | a, tenemos que |b| |a| (proposición 2.23) y entonces, por proposición 2.9, te-
nemos que |b| ≤ |a|. 
Entonces deducimos que todo entero no nulo tiene una cantidad finita de factores, la mitad de ellos
es positiva y la otra mitad negativa.
Proposición 2.25. Supongamos que a y b son enteros tales que b | a y que a | b. Entonces es a = b o
a = −b.
Demostración. Como b | a y a | b, tenemos que |b| ≤ |a| y que |a| ≤ |b|. Entonces |a| = |b|, de donde se
sigue que es o bien a = b o bien a = −b. 
Proposición 2.26. Supongamos que b | a1 , b | a2 , ..., b | ak , donde b, a1 , ..., ak son enteros. Entonces b
divide a cualquier combinación lineal a coeficientes enteros de a1 , a2 , ..., ak .
Proposición 2.27. Sean a1 , a2 , ..., ak , ak+1 y b enteros, y supongamos que b | a1 , b | a2 , ..., b | ak . Se
tiene que b | a1 + a2 + · · · + ak + ak+1 si, y sólo si, b | ak+1 .

5. Números primos y compuestos


Sea a un número entero. Para él, podemos elaborar su conjunto de divisores, es decir, el conjunto
{b ∈ Z : b | a}. Ese conjunto de divisores nunca es vacío: al menos 1, −1 están allí, y si además es a 6= 0, a y −a
también están. Un factor de a que no es 1, ni −1, ni a ni −a, se llama divisor propio de a. Los números 1
y −1 (y a y −a, si a 6= 0) son los divisores impropios de a. Notar que el módulo de un divisor propio es al
menos 2, y si a 6= 0, menor que |a| (proposición 2.24).
Ejemplo 2.28. El conjunto de divisores de 4 está compuesto por −4, −2, −1, 1, 2 y 4. El número 4 posee,
además de sus divisores impropios, los divisores propios 2 y −2. 
Ejemplo 2.29. El conjunto de divisores de 5 está compuesto por −5, −1, 1 y 5. Entonces, el 5 no posee
divisores propios. 
30 2. EL CONJUNTO DE LOS NÚMEROS ENTEROS. DIVISIBILIDAD

En base a la cantidad de elementos que tenga el conjunto de divisores de un número, éste puede ser clasificado
en dos categorías.
Definición 2.30. Se dice que un entero es un número primo si su conjunto de divisores consta exactamente
de cuatro elementos. Un entero se llama compuesto si su módulo es mayor que 1 y no es un número primo.
Veamos algunos ejemplos:
1. 0 no es un número primo pues posee infinitos divisores, y no exactamente cuatro. Tampoco es un número
compuesto.
2. 1 no es un número primo pues su conjunto de divisores consta de sólo dos elementos, 1 y −1. Tampoco
es un número compuesto. Lo mismo vale para −1.
3. 2 es primo, pues su conjunto de divisores es {−2, −1, 1, 2}, es decir, tiene exactamente cuatro miembros.
Igualmente, −2 es primo.
4. 3 y −3 son primos, pues el conjunto de divisores es {−3, −1, 1, 3} y entonces consta de exactamente
cuatro elementos.
5. 4 no es primo, pues su conjunto de divisores es {−4, −2, −1, 1, 2, 4}, que no consta de exactamente
cuatro elementos, sino de seis. Entonces, 4 es un número compuesto, así como −4.
De la definición, se desprende que, para a ∈ Z,
a es primo ⇐⇒ (|a| > 1 ∧ a no tiene divisores propios)
Ya que b | a si, y sólo si, b | −a, se deduce que el conjunto de divisores que tiene un número a es el mismo
que el conjunto de divisores de −a. Por eso, un número a es primo si, y sólo si, −a es también primo.
Ya que b | a si, y sólo si, −b | a, para detectar si un número entero a es primo, alcanza con ver su conjunto
de divisores positivos: a es primo si, y sólo si, tiene exactamente dos divisores positivos.
5.1. Pruebas de primalidad. Desde hace mucho tiempo, los números primos han concentrado el interés
de los matemáticos. Hay muchas cuestiones relativas a ellos que los hacen particularmente atractivos. Primero,
dado un número cualquiera, como por ejemplo 123.456.787, ¿cómo decidir si es primo? Segundo, ¿cuál es el
primo más grande? ¿O será que la cantidad de primos es infinita, y por tanto no hay uno que sea mayor que
todos los otros? Tercero, ¿hay primos de la forma 2n − 1 para n natural? En caso de haberlos, ¿son infinitos?
Para la primera pregunta, se han ideado tests de primalidad, es decir, algoritmos para decidir si un dado
número es primo o no. Ya veremos algunos básicos. El segundo grupo de preguntas ha sido ya contestado,
alrededor del año 300 a.C., por el griego Euclides, y más adelante veremos cómo procedió para contestar. La
última pregunta del tercer grupo es sólo un ejemplo de los abundantes problemas abiertos que al día de la fecha
se encuentran sin resolver en relación a los números primos. Hay efectivamente primos de la forma 2n −1 (probar
con n = 5) pero aún no se sabe si hay infinitos primos de tal forma. Y así como ésta, hay muchísimas cuestiones
sin resolver.
¿Por qué interesa saber si un número dado es o no primo? Más adelante veremos que los números primos
son básicos en cierto sentido, es decir, son como los ladrillos que constituyen el muro de la teoría de números.
Entonces los números primos tienen un gran interés teórico. Pero también práctico: los métodos actuales de
seguridad para proteger sistemas suelen basar esa seguridad en el conocimiento de números primos muy pero
muy grandes (de alrededor de 200 o 300 dígitos, o más).
¿Cómo saber si un número entero a es primo? Sabemos que a es primo si, y sólo si, |a| es primo, así que
podemos idear un procedimiento para testear si un natural n es primo. Por la definición, y por el hecho de que
un número natural no tiene divisores mayores que él, hay que testear si n posee un divisor entre 2 y n − 1. Es
decir, probar si 2 | n, si 3 | n, ..., si n − 1 | n. Si alguna de esas divisibilidades se cumple, entonces n no es
primo, y, en caso contrario, sí. Eso da un primer algoritmo, primo1 (a), que contesta V si el entero a es primo,
y F si no. Como recursivamente hay que ir probando si un número dado tiene factores, el algoritmo incluye una
función hija recursiva probarf actor1 (n, f ), que comprueba si f es factor de n.
primo1(a) =
si (|a| ≤ 1) contestar F
sino contestar probarf actor1(|a|, 2)
probarf actor1(n, f ) =
si (f = n) contestar V
sino 
si r(n, f ) = 0 contestar F
sino contestar probarf actor1(n, f + 1)
En definitiva, probarf actor1 recibe como argumento un natural n, y se dedica a probar uno por uno los
números de 2 hasta n − 1, a ver si uno de ellos es un divisor de n. Si encuentra uno que sea divisor, finaliza
la ejecución contestando que no. Obviamente, cuando a es un primo de módulo mayor que 2, el número de
invocaciones a probarf actor1 es |a| − 1.
5. NÚMEROS PRIMOS Y COMPUESTOS 31

Veamos cómo mejorar varios aspectos del algoritmo.


1. Supongamos que estamos viendo si 25 es primo. Lo primero a hacer es ver si 2 es un factor de 25. No lo
es, y entonces continuamos, viendo si 3 es factor de 25. No lo es, y entonces continuamos, viendo si 4 es
factor de 25. ¡Alto! ¿Hace falta ver si 4 divide a 25, ya sabiendo que 2 no es factor de 25? Obviamente
que no, por la transitividad de la divisibilidad: como 2 | 4, si a su vez 4 dividiera a 25, tendríamos
que 2 dividiría a 25. Pero ya sabemos que 2 no es un factor de 25, por lo que no puede ocurrir que 4
divida a 25. Es decir, habiendo probado que 2 no es factor de 25, ya sabemos que 4 tampoco, y, por
un razonamiento análogo, ni 6, ni 8, ni ningún número par. Entonces, una primera mejora al algoritmo
primo1 consiste en probar si a es divisible por 2, y si no lo es, dedicarse a ver, a partir del 3 y yendo
de dos en dos, si encontramos un factor de |a|. Llamemos primo2 (a) al algoritmo que procede de esa
manera, y cuya especificación es la siguiente:

primo2(a) =
si (|a| ≤ 1) contestar F
sino 
si r(a, 2) = 0
si (|a| = 2) contestar V
sino contestar F
sino contestar probarf actor2(|a|, 3)

probarf actor2(n, f ) =
si (f = n) contestar V
sino 
si r(n, f ) = 0 contestar F
sino contestar probarf actor2(n, f + 2)

Gracias a esta modificación, la cantidad de invocaciones recursivas será ahora del orden de |a|/2,
es decir, con un simple cambio nos hemos ahorrado la mitad del trabajo.
2. Pero podemos ahorrar aún más trabajo. ¿Cuál es el divisor propio más grande que puede tener 1.891?
Claro que no va a ser 1.890, porque 1.890 · 2 ya es mucho mayor que 1.891, y peor si lo multiplicamos
por 3, o 4, etc. En realidad, estamos viendo que el mayor divisor propio que puede tener un natural
n ≥ 2 no puede ser más grande que la mitad de n (o la mitad de n − 1, si n es impar). Esto nos ahorraría
la mitad de la mitad del trabajo: después de haber probado si |a| es par, buscar factores propios de |a|
arrancando de 3 y yendo de dos en dos, hasta llegar a la mitad de |a|. Si hasta allí no hemos encontrado
factores propios, a debe ser primo. Sin embargo, ahora veremos que no es necesario ni siquiera llegar
a probar hasta la mitad de |a| para comprobar si a es primo. Existe una mejor cota para la decisión.
Resulta que, para decidir
√ si un natural n es primo, alcanza con buscar factores propios hasta la parte
entera del número real n, es decir, el mayor número natural q tal que q 2 ≤ n. Por ejemplo, en el caso
de n = 1.891, tenemos que 432 = 1.849 ≤ 1.891, mientras que 442 = 1.936 > 1.891, y por lo tanto, para
testear la primalidad de 1.891, alcanza con buscarle factor hasta el número 43. ¿Por qué esto funciona
bien?

Proposición 2.31. Sea n un número natural mayor que 1, y sea q el mayor natural tal que q 2 ≤ n. Si n
no tiene factores propios menores o iguales que q, entonces n es un número primo.

Demostración. Demostraremos la contrarrecíproca: si n no es primo, entonces tiene al menos un factor


propio menor o igual que q.
Si n no es primo, siendo mayor que 1, tiene un factor propio b, es decir, existe c ∈ Z+ tal que n = bc.
1. Si b ≤ q, ya está demostrada la implicación.
2. Si b > q, es b ≥ q + 1, por lo que bc ≥ (q + 1) c, es decir, n ≥ (q + 1) c. Si fuese c ≥ q + 1, tendríamos
2
n ≥ (q + 1) , contradiciendo que q es el máximo natural cuyo cuadrado no supera a n. Entonces, es
c < q + 1, o, equivalentemente, c ≤ q. Dado que c también es un factor propio de n, queda demostrada
la proposición.


Entonces, gracias√a esta proposición, podemos poner como cota superior de búsqueda de factores propios
a la parte entera de n (o, equivalentemente, preguntar directamente si el factor que estamos testeando tiene
32 2. EL CONJUNTO DE LOS NÚMEROS ENTEROS. DIVISIBILIDAD

cuadrado que supera a n). El siguiente algoritmo, primo (a), trabaja de esa manera.
primo(a) =
si (|a| ≤ 1) contestar F
sino 
si r(a, 2) = 0
si (|a| = 2) contestar V
sino contestar F
sino contestar probarf actor(|a|, 3)

probarf actor(n, f ) =
si (f 2 > n) contestar V
sino 
si r(n, f ) = 0 contestar F
sino contestar probarf actor(n, f + 2)
Hace un rato, dijimos que si ya habíamos visto que 2 no es un factor de un natural n, no tiene sentido
preguntarse si los múltiplos de 2 son factores de n. Ese razonamiento puede aplicarse también a cualquier otro
primo menor que el número n cuya primalidad estamos testeando. Si p es un primo menor que n y no es un
factor de n, entonces ningún múltiplo de p puede ser factor de n. Por esta razón, cuando estamos decidiendo
si un natural n es primo, sólo hace falta ver si es divisible por algún primo menor √
que él. Pero de la segunda
consideración se desprende que alcanza con sólo verificar hasta la parte entera de n. De todo eso, se puede
establecer el siguiente criterio para decidir si un número natural n es primo: √
Elaborar una lista con todos los números primos que no superen a la parte entera de n.
n es primo si, y sólo si, ningún número de esa lista es factor de n.
Por ejemplo, los primos menores o iguales que 100 son
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
Esa lista alcanza para decidir si un natural n ≤ 10.000 es o no primo. Por ejemplo, 8.633 no es primo, pues
es divisible por 89. El número 9.973 es primo pues no es divisible por√ningún elemento de esa lista. La lista no
alcanza para saber si 100.001 es o no primo, pues la parte entera de 100.001 es 316, y entonces, para saber si
100.001 es primo, hace falta la lista de todos los primos que no superan a 316. Si queremos saber si un número
de 30 cifras es primo, por este criterio hace falta conocer los primos que tengan hasta 15 dígitos.

5.2. La criba de Eratóstenes. Acabamos de ver que, para ciertos objetivos, es muy útil tener una
lista con todos los naturales primos hasta un cierto límite superior N . Por ejemplo, eso sirve para testear
eficientemente la primalidad de cualquier número menor que N 2 . ¿Cómo se puede elaborar sistemáticamente tal
lista? Una manera es invocar al algoritmo primo (a) muchas veces, con todos los números naturales hasta N , a
ver cuáles son primos. Eso va a tardar mucho tiempo. Resulta que en el siglo III a.C., a un griego de nombre
Eratóstenes se le ocurrió una muy buena idea: en vez de ver cuáles números menores o iguales que N son primos,
averiguar cuáles son compuestos. De entrada, parece ser lo mismo que averiguar cuáles son primos, pero resulta
que no, y la explicación está en el procedimiento que se emplea para detectar a los números compuestos.
El procedimiento es así:
1. Escribir los números del 2 al N en forma consecutiva (ésta es nuestra lista inicial)
2. A partir de 2, vamos tachando todos los números de dos en dos (hasta llegar al final de la lista), pero
sin tachar al propio 2.
3. El primer número que quedó sin tachar después de 2 es 3. Entonces, a partir de 3, vamos tachando
todos los números de la lista inicial de tres en tres, pero sin tachar al propio 3 (si un número ya había
sido tachado en el paso anterior, lo dejamos tachado como estaba).
4. El primer número que quedó sin tachar después de 3 es 5 (al 4 ya lo habíamos tachado cuando fuimos de
dos en dos desde el 2). Entonces, a partir de 5, vamos tachando todos los números de la lista inicial de
cinco en cinco, pero sin tachar al propio 5 (y dejando tachados a los números que ya estaban tachados
en el paso anterior).
5. El primer número que quedó sin marcar después de 5 es 7 (al 6 ya lo habíamos tachado cuando fuimos
de dos en dos desde el 2, y lo “volvimos a tachar” cuando fuimos de tres en tres desde el 3). Entonces,
a partir de 7, vamos tachando todos los números de la lista inicial de siete en siete, pero sin tachar al
propio 7.
6. El primer número que quedó sin tachar después de 7 es 11 (al 8 y al 10 ya los habíamos tachado cuando
fuimos de dos en dos desde el 2, y al 9 lo hemos tachado cuando fuimos de tres en tres desde el 3).
Entonces, comenzando en 11, vamos tachando todos los números de la lista inicial de once en once, pero
sin tachar al propio 11.
5. NÚMEROS PRIMOS Y COMPUESTOS 33

Y así continuamos, viendo cuál es el primer número sin tachar a la derecha del cual empezamos en el paso
anterior, y vamos de a saltos tachando números de la lista inicial. Repetimos este procedimiento hasta√que
lleguemos a que el primo a partir del cual tenemos que comenzar el proceso supera a la parte entera de N .
Los números de la lista inicial que han quedado sin tachar son los primos menores o iguales que N .
¿Qué es lo que estamos haciendo con este procedimiento? El primer paso consiste en escribir la lista completa
de números del 2 al N . En el paso siguiente, estamos averiguando todos los números compuestos de esa lista
que tienen a 2 como factor. En el siguiente, todos los compuestos de la lista que tienen a 3 como√factor. En el
siguiente, todos los compuestos que tienen a 5 como factor. Y así, hasta llegar a parte entera de N .
Una criba es un colador (claro que nos resultaría raro que má nos diga “ayudame a cribar los fideos que acaban
de hervir en la olla”, pero no nos asustaríamos si nos pide “ayudame a colar los fideos”). En el procedimiento
anterior, lo que estamos haciendo es cribar los números de 2 a N , repetidas veces, a fin de eliminar los compuestos
y retener sólo los primos. Al tachar los compuestos múltiplos de 2, estamos “cribando los múltiplos de 2”,
reteniendo sólo a 2, y a todos los otros números que no son múltiplos de 2; de ellos, al tachar los compuestos
múltiplos de 3, estamos “cribando los múltiplos de 3”, reteniendo sólo a 2, a 3, y a los que no son múltiplos de
2 ni de 3. Y así, sucesivamente, por detección y tachado de los números compuestos de la lista, nos quedamos
sólo con los primos.
Ejemplo 2.32. Apliquemos el método de la criba de Eratóstenes para encontrar los primos menores o
iguales que N = 49. Mostramos paso a paso el procedimiento:
1. Lista inicial:
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

2. Primer cribado (tachar los compuestos que son múltiplos de 2, salvo el propio 2):
2 3 4 
5 6 7 
8 9  11 
10  13 
12  15 
14  17 
16  19 
18 2 2
0 21   25
2 23 
24


26 27 

28 29 

30 31 

32 33 

34 35 

36 37 

38 39 

40 41 

42 43 
4
4 45 
4
6 47 
 49
48

3. Segundo cribado (tachar los compuestos que son múltiplos de 3, salvo el propio 3):
2 3 4 
5 6 7 
8 
9  11 

10  13 
12 
14 

15  17 

16  19 
18 2
0 2
1 2
  25
2 23 
24

26 
  
27 
28 29 

30 31 
32 
 3
3 

34 35 

36 37 

38 

39 

40 41 

42 43 4
4 4
5 
4
6 47  49

48

4. Tercer cribado (tachar los compuestos que son múltiplos de 5, salvo el propio 5):
2 3 4 5 6 7 
8 9 
  11 
10  13 
12  
14  
15  17 
16  19 
18 2 2
0  2
1   
2 23 
24 
25
 

26  
27  29 
28 3 3
0 31  3
2   
3 
34  
35  37 
36  
38  
39  41 
40  43 
42 4 4
4  4
5   49
6 47 
48

5. Cuarto cribado (tachar los compuestos que son múltiplos de 7, salvo el propio 7):
2 3 4 5 6 7 
8 9 
  11 
10  13 
12  
14  
15  17 
16  19 
18 2 2
0  2
1   
2 23 
24 
25
 

26  
27  29 
28 3 3
0 31  3
2   
3 
34  
35 36  
 37 
38  
39 40 42 4
 43 
 41  4
4  4
5   
6 47 
48 
49

Y ya no hace falta cribar más, porque el próximo √ número a partir del cual habría que empezar el proceso
es 11, que ya es mayor que la parte entera de 49 que es 7. Los números que no tienen marca abajo son los
primos de la lista: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43 y 47. 
5.3. Infinitud de los números primos. Ahora vamos a demostrar una importante propiedad legada
por Euclides hace ya mucho tiempo: existen infinitos números primos en el conjunto de los enteros.
Lema 2.33. Todo número natural compuesto es divisible por un natural primo.
Demostración. Demostraremos la propiedad por el PCMC. Sea n un contraejemplo, es decir, sea n un
natural compuesto que no sea divisible por ningún número primo. Por ser compuesto, n debe tener un factor
propio b tal que 1 < b < n. Por nuestra suposición, b no puede ser un número primo, por lo que b es compuesto.
¿Puede ser b divisible por algún número primo? No, pues, de serlo, ese primo dividiría también a n (transitividad
de la divisibilidad), lo que contradiría que n no es divisible por un número primo. Entonces, b es un natural
compuesto que tampoco es divisible por un número primo. O sea que b es también un contraejemplo al enunciado,
y menor que el contraejemplo n. Entonces, por el PCMC, el lema queda demostrado. 
Teorema 2.34. (Euclides) Existen infinitos números enteros que son primos.
Demostración. Dado que N ⊂ Z, alcanza con ver que existen infinitos naturales primos. Sea P el conjunto
de todos los naturales primos. Si P fuese finito, tendría un elemento máximo a. Hagamos n = a! + 1, resultando
que n es estrictamente mayor que 1 y que a, y entonces n ∈ / P, es decir, n es un natural compuesto. Luego, n
es divisible por un natural primo p ∈ P (lema 2.33). Pero el resto de dividir n entre p es 1, pues 1 < p ≤ a y
n = a(a − 1) · · · (p + 1)p(p − 1) · · · 2 · 1 + 1 (expresión que corresponde a la ecuación de la división entre n y p).
34 2. EL CONJUNTO DE LOS NÚMEROS ENTEROS. DIVISIBILIDAD

Contradicción que proviene de suponer la existencia de una cantidad finita de números primos. Por lo tanto,
existen infinitos primos. 

6. Algunas curiosidades
6.1. Números de Fibonacci. De todas las funciones recursivas, tal vez la más clásica sea la que permite
definir los números de Fibonacci. Los mismos surgieron en base a un problema teórico propuesto por Leonardo
de Pisa (Fibonacci) en el siglo XIII, relacionado a la reproducción de conejos en una granja. La sucesión de
Fibonacci comienza así:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, . . .
Los puntos suspensivos indican que la lista es infinita. Cada término de la sucesión (salvo los dos primeros)
se obtiene de sumar los dos que están inmediatamente a su izquierda. Los dos primeros, que constituyen la
base para armar la sucesión completa, son 0 y 1. Formalmente, si designamos por fn al n-ésimo término de la
sucesión, es f0 = 0, f1 = 1 y, para n ≥ 2, es fn = fn−1 + fn−2 . Surgieron varios problemas interesantes en
relación a esta sucesión:
1. ¿Tienen algún factor propio en común dos términos consecutivos de la sucesión? Por inducción se
demuestra que no. n
2. ¿Cómo crecen los términos de la sucesión? También por inducción, se puede ver que fn ≤ 74 , es decir,
que la sucesión está acotada superiormente por una función exponencial creciente.
3. ¿Hay alguna fórmula para conocer fn directamente en función de n, sin necesidad de calcular los dos
términos anteriores? Sí. La expresión fn = fn−1 + fn−2 es un ejemplo de ecuación de diferencias
finitas, o ecuación de recurrencia, y hay una teoría general de resolución de tales ecuaciones.
Aplicada al caso, se llega a deducir que
√ !n √ !n
1 1+ 5 1 1− 5
fn = √ −√
5 2 5 2
Está fórmula puede verificarse por inducción. Para n grande, predomina el primer término, así que
se ve que el n-ésimo número de √ Fibonacci
 es casi proporcional a una función exponencial a tasa igual
a la razón de oro (que es 1 + 5 /2, número importante histórica y arquitectónicamente).
6.2. Algunas conjeturas sobre números primos.
1. Conjetura de Goldbach: ¿Es cualquier número par igual a la suma de dos números primos? Por análisis
de casos individuales, eso pareciera ocurrir siempre. Por ejemplo: 16 = 5 + 11, 22 = 11 + 11. Y se han
hecho muchas pruebas, desde el siglo XVII en que fue planteada la conjetura. Al día de la fecha, sigue
siendo un interrogante.
2. Primos gemelos: Dos números primos se llaman gemelos si difieren en dos unidades. Por ejemplo,
71 y 73 son primos gemelos. La conjetura es: ¿Existen infinitos pares de primos gemelos? Hasta el
momento, los primos gemelos más grandes que se han descubierto son 33.218.925 · 2169.690 − 1 y
33.218.925 · 2169.690 + 1. Ocurrió en el año 2002, y cada número tiene 51.090 dígitos.
3. Primos de Mersenne: En el siglo XVII, el monje francés Marin Mersenne estudió números de la forma
2n − 1, interesándose en los valores de n para los cuales la expresión produce números primos. Los
primos de la forma 2n − 1 se llaman primos de Mersenne. El monje ofreció varios de esos n, de los
cuales se equivocó en algunos (por ejemplo, afirmó que 2257 − 1 es primo; recién en el siglo XX, gracias
a las calculadoras, se pudo verificar que no). La principal conjetura que formuló es que hay infinitos
primos de esa forma. Hasta este momento, saber si hay infinitos primos de Mersenne es un problema
abierto. El mayor de los primos de Mersenne descubiertos hasta ahora es 224.036.583 − 1, con 7.235.733
dígitos, en mayo de 2004.
4. Se ha demostrado que entre un número positivo cualquiera y su doble siempre existe al menos un primo.
Es decir, ∀n ≥ 1, ∃p : n ≤ p ≤ 2n ∧ p es primo. Pero se buscan más pistas sobre la distribución de los
primos a lo largo de la recta numérica. Por ejemplo, está abierta la cuestión de si entre dos cuadrados
2
perfectos consecutivos hay un primo, es decir, si ∀n ≥ 1, ∃p : n2 ≤ p ≤ (n + 1) ∧ p es primo. Por lo
2
que antes se dijo, hay un primo entre n2 y 2n2 , pero (n + 1) < 2n2 , de modo que la existencia de un
primo entre dos cuadrados consecutivos no puede resolverse sabiendo que siempre hay un primo entre
un número y su doble.
6.3. Números perfectos. Un número perfecto es un natural que es igual a la suma de sus divisores
positivos menores que él mismo. Por ejemplo, 6 = 3 + 2 + 1, mostrando que 6 es perfecto, y el menor de todos.
Le siguen 28, 496 y 8.128. Euclides descubrió que esos cuatro números salen de aplicar la fórmula 2n−1 (2n − 1)
con, respectivamente, n = 2, 3, 5, 7. A no equivocarse: no es cierto que si n es primo, la fórmula produzca siempre
números perfectos (por ejemplo, probar n = 11). Al darse cuenta de que, en esos casos, también 2n − 1 es un
6. ALGUNAS CURIOSIDADES 35

primo, Euclides conjeturó y demostró que si 2n − 1 es primo, entonces 2n−1 (2n − 1) es un número perfecto.
Posteriormente, Euler demostró en el siglo XVIII que todos los números perfectos pares se generan a partir de
la fórmula que descubrió Euclides.
No se conoce la existencia de números perfectos impares, pero, hasta el día de hoy, no está demostrada su
inexistencia. Sin embargo, existen algunos resultados parciales. Si existe un número perfecto impar, debe ser
mayor que 10300 , y debe tener al menos ocho factores primos distintos (y al menos once si no es divisible por 3).
Uno de esos factores debe ser mayor que 107 , dos de ellos deben ser mayores que 10.000 y tres factores deben
ser mayores que 100.
Se desconoce si hay infinitos números perfectos, pues la pregunta está ligada a la existencia de infinitos
primos de Mersenne. No es difícil demostrar que el último dígito decimal de un número perfecto par es siempre
6 u 8.
6.4. Números amigos. Dos números naturales m y n se llaman amigos si la suma de los divisores
positivos de m (excepto m) es igual a n y viceversa. Pitágoras mostró la existencia de pares de números amigos,
ofreciendo como ejemplo 220 y 284. La lista de divisores de 220 es {1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110, 220};
sumando todos ellos excepto 220, se obtiene 284. La lista de divisores de 284 es {1, 2, 4, 71, 142, 284}; sumando
todos ellos excepto 284, se obtiene 220.
Varios años después, en el siglo XVII, Fermat ofreció al mundo la segunda pareja de números amigos: 17.296
y 18.416. Fermat descubrió también una regla para encontrar tales pares: supongamos que p es un número tal
que los números q = 3 · 2p−1 − 1, r = 3 · 2p − 1 y s = 9 · 22p−1 − 1 son todos primos; entonces, los números
m = 2p qr y n = 2p s son amigos.
Al día de la fecha, no se sabe si las parejas de números amigos son infinitas.
Capítulo 3

MÁXIMO COMÚN DIVISOR. MÍNIMO COMÚN MÚLTIPLO

En el capítulo anterior, hemos formalizado el concepto de divisibilidad en el campo de los números enteros,
entendiendo qué significa que un número sea un factor de otro. Hemos visto que, en la determinación de la
primalidad de un número dado, interesa conocer su lista de factores. En este capítulo, consideraremos simultá-
neamente las listas de factores de dos números dados, interesándonos en el mayor de los elementos comunes a
ambas listas: el máximo común divisor de esos dos números. Estudiaremos varias propiedades acerca de él, y
veremos maneras eficientes para calcularlo. Luego, extenderemos la idea a la de máximo común divisor de varios
números, y veremos una noción complementaria, la de mínimo común múltiplo, analizando la estrecha relación
existente entre ambas. Finalmente presentaremos la aplicación de estas ideas a la búsqueda de soluciones enteras
de cierto tipo de ecuaciones lineales, en cuya resolución el máximo común divisor juega un rol protagónico.

1. Máximo común divisor


Definición 3.1. Sean a y b números enteros. Cualquier número entero que simultáneamente divide a a y
a b se llama un divisor común de a y b.
Es decir, d ∈ Z es un divisor común (o factor común) de a y de b si d | a y d | b.
Una manera de encontrar factores comunes a a y a b es obtener la lista de divisores de ambos, y fijarse
cuáles son los elementos que están en ambas listas. Si tanto a como b son 0, las dos listas son coincidentes e
infinitas. Si al menos uno de los dos es diferente de 0, de la proposición 2.24, deducimos que ese número no nulo
tiene sólo una cantidad finita de factores, y, en este caso, la lista de factores comunes a ambos es finita. Por
razones que se harán evidentes más adelante, interesa mucho conocer cuál es el mayor de los elementos de esa
lista finita.
Definición 3.2. Sean a y b números enteros tales que al menos uno de ellos sea diferente de 0. El máximo
común divisor de a y b, denotado mcd (a, b), es el mayor de los divisores comunes de a y b.
Obsérvese que la lista de divisores comunes de dos números nunca es vacía: al menos el número 1 siempre
está allí. Además, ya dijimos que la lista de divisores comunes es finita si al menos uno de los números es diferente
de 0. Entonces, si a y b no son ambos nulos, el conjunto de sus divisores comunes es no vacío y finito. Por eso,
debe tener un elemento máximo, y, por definición de máximo de un conjunto, es único. En otras palabras, el
máximo común divisor de una pareja de números no simultáneamente nulos siempre existe y es único, y es un
número entero positivo.
Cuando dos números a y b tienen un factor propio t en común, se tiene que su máximo común divisor es
mayor estricto que 1, pues, en ese caso, es mcd (a, b) ≥ |t| ≥ 2. Por lo tanto, si mcd (a, b) = 1 es porque ningún
número más grande que 1 es factor común de a y b. Esta situación recibe un nombre especial.
Definición 3.3. Sean a y b dos números enteros. Se dice que a y b son coprimos si no tienen factor común
más grande que 1. Equivalentemente, a y b son coprimos cuando mcd (a, b) = 1.
Proposición 3.4. Sea p un primo, y sea a un entero. Entonces o bien p es un factor de a o bien p y a son
coprimos.
Demostración. Supongamos que p no es factor de a. El único factor mayor que 1 que tiene p es |p|, que
no es factor de a. Luego, la lista de factores comunes de p y a es {−1, 1}, y entonces mcd (p, a) = 1. 
¿Cómo se calcula mcd (a, b)? De la definición, elaborando la lista de factores de a, luego la de b, obteniendo
luego los factores comunes, y finalmente viendo cuál es el máximo de ellos. Nótese que, a la hora de encontrar
el máximo común divisor por este método, nos alcanza con inspeccionar sólo los factores comunes positivos.
Además, dado que la lista de factores comunes de a y b es la misma que la de factores comunes de |a| y |b|
(proposición 2.23), se tiene que mcd (a, b) = mcd (|a| , |b|), y por esta razón es suficiente saber calcular máximo
común divisor de pares de números naturales.
Ejemplo 3.5. Encontrar mcd (84, 60).
El conjunto de factores positivos de 84 es {1, 2, 3, 4, 6, 7, 12, 14, 21, 28, 42, 84}. El conjunto de factores positi-
vos de 60 es {1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60}. La intersección de estos dos conjuntos es {1, 2, 3, 4, 6, 12}, cuyo
máximo elemento es 12. Luego, mcd (84, 60) = 12. 
37
38 3. MÁXIMO COMÚN DIVISOR. MÍNIMO COMÚN MÚLTIPLO

Como pasa muchas veces, las definiciones no proporcionan el mejor método para calcular algo. Una primera
mejora que podríamos hacer al método anterior para calcular mcd (a, b) es la siguiente: considerar sólo la lista
de divisores positivos del más chico entre |a| y |b|, y, de mayor a menor, testear si son divisores del otro también,
parando cuando encontremos uno (cosa que siempre va a ocurrir, en el peor de los casos cuando lleguemos a
1). En nuestro ejemplo anterior, esto funcionaría así: el más chico entre 84 y 60 es 60. Su lista de divisores
positivos, ordenada de mayor a menor, es {60, 30, 20, 15, 12, 10, 6, 5, 4, 3, 2, 1}. ¿Es 60 factor de 84? No. Vamos
con el siguiente de la lista: ¿Es 30 factor de 84? No. ¿Y 20? Tampoco. ¿Y 15? Tampoco. ¿Y 12? Sí. Entonces,
mcd (84, 60) = 12.

1.1. El algoritmo de Euclides. La mejora obtenida más arriba para encontrar el máximo común divisor
no es sustancial, y la razón es que seguimos dependiendo de buscar uno a uno factores de números. La búsqueda
de todos los factores de un dado número es un proceso tedioso, y difícil de realizar si el número en cuestión
es grande (de hecho, esa dificultad es lo que permite garantizar la seguridad de ciertos sistemas). ¡Caramba!
¿Podemos independizarnos del proceso de factorizar números para encontrar un máximo común divisor, siendo
que buscamos precisamente un factor común, y el mayor de todos? La respuesta, por increíble que parezca, es
sí, y la dio nuestro ya conocido Euclides hace una punta de años, ofreciendo un algoritmo muy eficiente.
Para tratar de entender la idea del algoritmo, consideremos el problema de encontrar mcd (60, 24) elaborando
la lista de divisores comunes a 60 y a 24. La lista de divisores positivos de 60 es {1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60}.
La lista de divisores positivos de 24 es {1, 2, 3, 4, 6, 8, 12, 24}. La lista de los factores positivos comunes a ambos es
{1, 2, 3, 4, 6, 12}. ¡Oh casualidad! Es la misma que la lista de factores positivos comunes a 84 y a 60 (ejemplo 3.5)
Como ambas listas coinciden, sus elementos máximos son iguales. En otras palabras, mcd (84, 60) = mcd (60, 24).
¿Y qué tiene que ver la pareja (84, 60) con la pareja (60, 24)? 60 aparece en ambas, una vez como segundo ar-
gumento y otra como primero; y 24 es el resto de la división entre 84 y 60. De eso se dio cuenta Euclides: de
que la lista de divisores comunes a los números a y b es la misma que la de los divisores comunes a b y r (a, b),
siempre que b 6= 0. Demostrémoslo.
Lema 3.6. Sean a, b y d enteros con b 6= 0. Se tiene que d es un factor común de a y de b si, y sólo si, d
es un factor común de b y r (a, b).
Demostración. De la ecuación de la división entre a y b, tenemos que r (a, b) = a − b · c (a, b), es decir,
r (a, b) es combinación lineal a coeficientes enteros de a y de b. Si d | a y d | b, por proposición 2.26, tenemos
entonces que d | r (a, b). Luego, d es factor común de b y de r(a, b).
Para la vuelta, observemos que a = b · c (a, b) + r (a, b), por lo que a es combinación lineal a coeficientes
enteros de b y r (a, b). Si d | b y d | r (a, b), nuevamente por proposición 2.26, tenemos que d | a. Luego, d es un
factor común de a y b. 

Corolario 3.7. Sean a y b enteros con b 6= 0. Entonces, mcd (a, b) = mcd (b, r (a, b)).
El anterior corolario se aprovecha para reducir el cálculo de mcd (a, b) al cálculo de mcd (b, r (a, b)), en
donde los números intervinientes son típicamente más chicos que los originales a y b. Pero, a su vez, podemos
usar el mismo corolario para decir que si r (a, b) 6= 0, entonces mcd (b, r (a, b)) = mcd (r (a, b) , r (b, r (a, b))). Y
así sucesivamente. Por ejemplo, mcd (84, 60) = mcd (60, 24) = mcd (24, 12) = mcd (12, 0). Hemos llegado a un
punto en que ya no podemos aplicar el corolario, pues el segundo argumento es 0. Sin embargo, no tenemos que
trabajar mucho para darnos cuenta de que mcd (a, 0) = |a| cualquiera sea a 6= 0. Por lo tanto, mcd (12, 0) = 12,
y entonces mcd (84, 60) = 12.
En resumen, el recursivo algoritmo de Euclides para calcular mcd (a, b) es el siguiente:
mcdeucl(a, b) =
si (b = 0) contestar |a| 
sino contestar mcdeucl b, r(a, b)
Vale decir, si b no es 0, dividir a entre b y aplicar el algoritmo al par (b, r (a, b)), repitiendo sucesivamente el
procedimiento de dividir y fijarse en el resto, hasta llegar a una división con resto 0. Esto va a ocurrir finalmente
en alguna etapa, pues la sucesión de restos que se va obteniendo de las sucesivas divisiones es estrictamente
decreciente. Entonces, el máximo común divisor buscado es el último resto no nulo que se obtuvo.
Ejemplo 3.8. Encontrar mcd (1.956, 328), por aplicación del algoritmo de Euclides.
Observemos que
r (1.956, 328) = 316
r (328, 316) = 12
r (316, 12) = 4
r (12, 4) = 0
1. MÁXIMO COMÚN DIVISOR 39

Por lo tanto,
mcdeucl (1.956, 328) = mcdeucl (328, r (1.956, 328))
= mcdeucl (328, 316) = mcdeucl (316, r (328, 316))
= mcdeucl (316, 12) = mcdeucl (12, r (316, 12))
= mcdeucl (12, 4) = mcdeucl (4, r (12, 4))
= mcdeucl (4, 0)
= 4
Entonces, mcd (1.956, 328) = 4. Podríamos haber deducido ésto de sólo observar, en la sucesión de restos más
arriba obtenida, cuál fue el último resto no nulo encontrado, que fue precisamente 4. 
Otro resultado interesante es el siguiente:
Corolario 3.9. Sean a y b enteros no ambos nulos, y sea k un entero. Entonces, mcd (a + kb, b) =
mcd (a, b).
Demostración. Es directo ver que si b es 0, la propiedad se cumple. Ahora si b 6= 0, tenemos que b | kb,
de donde, por proposición 2.18, es r (a + kb, b) = r (r (a, b) + r (kb, b) , b) = r (r (a, b) , b) = r (a, b). Por lo tanto,
por corolario 3.7, es mcd (a + kb, b) = mcd (b, r (a + kb, b)) = mcd (b, r (a, b)) = mcd (a, b), como queríamos
probar. 
1.2. Algunas propiedades de M.C.D. Veremos ahora algunas cuestiones relacionadas al máximo co-
mún divisor, que permiten otras caracterizaciones del mismo. El primer resultado muestra que el máximo común
divisor de dos números es siempre una combinación lineal a coeficientes enteros de esos dos números.
Teorema 3.10. (Identidad de Bezout) Sean a y b dos números enteros no simultáneamente nulos.
Existen enteros s y t tales que sa + tb = mcd (a, b).
Demostración. Designemos g = mcd (a, b). Consideremos el conjunto C de todas las combinaciones li-
neales a coeficientes enteros de a y de b, es decir, C = {xa + yb : x, y ∈ Z}. Como a y b no son ambos nulos,
eligiendo adecuadamente x e y se puede ver que hay al menos una combinación lineal positiva de a y b (por
ejemplo, si a 6= 0, tomar y = 0 y x = |a|
a , de modo que xa + yb = |a| > 0; similarmente, si fuese b 6= 0, podríamos
tomar x = 0 e y = |b| b ). Designemos por C + al conjunto de las combinaciones lineales positivas a coeficientes
enteros de a y de b. Obviamente, C es un subconjunto de Z+ , y, por lo que acabamos de ver, es C + 6= ∅. Por
+

el principio del buen orden de los naturales, C + tiene un mínimo elemento, llamémosle m, que es mayor que 0.
Entonces existen enteros s y t tales que sa + tb = m. Mostremos que m = g, con lo que quedará probada la
afirmación del teorema. Como g es un divisor común de a y b, g divide a cualquier combinación lineal de a y de
b (proposición 2.26), en particular a m, por lo que g ≤ m (proposición 2.9).
Para ver que m ≤ g, primero veamos que m | a. Por el teorema de la división, existen enteros c y r tales
que a = cm + r con 0 ≤ r < m. Por lo tanto, r = a − cm = a − c (sa + tb) = a (1 − cs) + b (−ct). Entonces r es
una combinación lineal no negativa a coeficientes enteros de a y de b. Si fuese r > 0, tendríamos que r ∈ C + ,
y entonces sería r ≥ m (pues m es el mínimo en C + ), contradiciendo que es r < m. Luego, debe ser r = 0, y
entonces m | a. Análogamente se demuestra que m | b. Como m es un factor común de a y b, es m ≤ g. Y ya
teníamos que g ≤ m, así que es m = g. 
Por el momento, dejamos al lector la inquietud de si el par de enteros (s, t) del teorema anterior es único.
Volveremos más adelante sobre eso.
De la demostración del teorema 3.10, surge la siguiente caracterización del mcd (a, b):
Corolario 3.11. Sean a y b enteros no simultáneamente nulos. El mcd (a, b) es la menor de las combina-
ciones lineales positivas a coeficientes enteros de a y b. Es decir,
mcd (a, b) = mı́n {xa + yb : x, y ∈ Z ∧ xa + yb > 0}
De lo anterior, se desprende un hecho de mucha utilidad.
Observación 3.12. Si un número positivo n es combinación lineal a coeficientes enteros de los enteros a y
b, entonces n ≥ mcd(a, b).
Si por un momento regresamos al ejemplo 3.5, y observamos la lista de factores comunes de 84 y 60, veremos
que cada uno de ellos es a su vez un factor de mcd (84, 60). Esta situación ocurre siempre: mcd (a, b) es múltiplo
de cualquier factor común de a y b. Y esa propiedad es otra manera de caracterizar al máximo común divisor.
Teorema 3.13. Sean a y b enteros no ambos nulos, y sea d un entero. Se tiene que d = mcd (a, b) si, y
sólo si, d es un divisor común positivo de a y de b que es divisible por todos los divisores comunes de a y b.
40 3. MÁXIMO COMÚN DIVISOR. MÍNIMO COMÚN MÚLTIPLO

Demostración. Para la ida, supongamos que d = mcd (a, b). Entonces d es positivo y divide a a y a b.
Sea k un divisor común de a y de b. Entonces, k divide a cualquier combinación lineal a coeficientes enteros de
a y de b (proposición 2.26), en particular a mcd (a, b) (teorema 3.10).
Ahora, supongamos que d es un divisor común positivo de a y de b que es divisible por todos los divisores
comunes de a y b. En particular, es divisible por mcd (a, b), por lo que mcd (a, b) ≤ d (proposición 2.9). Pero
como d es factor común de a y b, es d ≤ mcd (a, b). Luego, d = mcd (a, b). 

Teorema 3.14. Sean a y b enteros no ambos nulos, y sea d un número natural. Se tiene que mcd (a, b) = d
si, y sólo si, existen enteros c1 y c2 coprimos tales que a = c1 d y b = c2 d.
Demostración. Primero supongamos que mcd (a, b) = d. Entonces, d | a y d | b, por lo que existen
c1 , c2 ∈ Z tales que a = c1 d y b = c2 d. Sea t un factor común positivo de c1 y c2 . Existen c′1 , c′2 ∈ Z tales que
c1 = c′1 t y c2 = c′2 t, por lo que a = c′1 (td) y b = c′2 (td). O sea que td es un divisor común de a y de b, por lo que
debe ser td ≤ mcd (a, b), vale decir, td ≤ d. Entonces debe ser t = 1, es decir, el único factor positivo en común
que tienen c1 y c2 es 1. Por lo tanto, mcd (c1 , c2 ) = 1.
Ahora vamos por la recíproca: supongamos que existen enteros coprimos c1 y c2 tales que a = c1 d y b = c2 d.
Queremos mostrar que d = mcd (a, b). Por ser c1 y c2 coprimos, la Identidad de Bezout nos dice que existen
enteros s, t tales que sc1 +tc2 = 1. Multiplicando miembro a miembro por d y considerando que c1 d = a, c2 d = b,
tenemos que sa + tb = d. Por la observación 3.12 resulta d ≥ mcd(a, b), y como d es factor común de a y b, es
d ≤ mcd(a, b). En consecuencia, d = mcd(a, b). 

1.2.1. El algoritmo extendido de Euclides. Dados enteros a y b no ambos nulos, el teorema 3.10 asegura la
existencia de enteros s y t tales que sa+tb = mcd (a, b), pero no da indicios de cómo calcular tales números s y t.
Si a y b son números chicos, un simple tanteo puede proporcionarlos fácilmente, pero si alguno de ellos es grande
la cosa se complica. Resulta que existe un algoritmo que recibe los enteros a y b, y que termina contestando
una terna de enteros (s, t, g) en donde g = mcd (a, b), y además sa + tb = g. Es decir, entrega de una sola vez
el máximo común divisor de a y b y una pareja de enteros que muestran que mcd (a, b) es combinación lineal
a coeficientes enteros de a y b. Con toda justicia, el algoritmo se llama algoritmo extendido de Euclides,
pues hace un poco más que lo que hace el algoritmo de Euclides, pero a la manera del algoritmo de Euclides:
por divisiones sucesivas.
Los lineamientos del diseño del algoritmo extendido son los siguientes:
|a|
Si b = 0, entonces mcd (a, b) = |a|. Por eso, alcanza con tomar s = a (es un entero que vale 1 ó −1) y
t = 0, pues, en ese caso,
|a|
sa + tb = · a + 0 · b = |a| = mcd (a, b)
a
 
Entonces, en este caso, el algoritmo debe contestar la terna |a| a , 0, |a| .
Si b 6= 0, podemos pensar en la división entre a y b. Digamos que el cociente es c y el resto r. Es decir,
a = bc + r con 0 ≤ r < |b|. Sabemos que mcd (a, b) = mcd (b, r). Por lo tanto, si tuviésemos un par de
enteros (s′ , t′ ) tales que s′ b + t′ r = mcd (b, r), tendríamos que s′ b + t′ r = mcd (a, b). Pero r = a − bc, por
lo que, sustituyendo, nos queda que s′ b + t′ (a − bc) = mcd (a, b), es decir, s′ b + t′ a − t′ bc = mcd (a, b).
Acomodando esta expresión, resulta que t′ a + (s′ − t′ c) b = mcd (a, b). Es decir, tomando s = t′ y
t = s′ − t′ c (en donde c y r son cociente y resto de a dividido b, y s′ y t′ son los coeficientes que
muestran que mcd (b, r) es combinación lineal de b y r), tenemos los enteros s y t que buscamos: los que
cumplen sa + tb = mcd (a, b). O sea que el problema de encontrar enteros para a y b pasa por encontrar
enteros para b y r: indicio de una llamada recursiva.
Entonces se resuelve, por recursividad, el problema de encontrar s y t para que sa + tb = mcd (a, b), resol-
viendo el mismo problema pero con argumentos más chicos, pues el par (b, r) es menor (en segunda componente)
que el par (a, b). En las sucesivas llamadas recursivas que hagamos a la función que ejecuta la tarea, el segundo
argumento va decreciendo, hasta que tarde o temprano llega a ser 0, que es un caso de salida garantizada.
En definitiva, el algoritmo extendido de Euclides, escrito en notación algorítmica, es así:

euclext(a, b) =  
si (b = 0) contestar |a| a , 0, |a|
sino
sea (c, r) = crent(a, b)
sea (s′ , t′ , g) = euclext(b, r)
contestar (t′ , s′ − t′ c, g)
Ejemplo 3.15. Encontrar s y t tales que s · 1.956 + t · 328 = mcd (1.956, 328).
Invocaremos, para la tarea encomendada, euclext(1.956, 328).
1. MÁXIMO COMÚN DIVISOR 41

1. Para evaluar euclext(1.956, 328) hacemos a = 1.956 y b = 328. Como b no es 0, hacemos el cálculo
intermedio (c, r) = cr(1.956, 328) = (5, 316) (obviaremos los detalles de la invocación a cr). Ahora
invocamos euclext (328, 316), por lo que quedamos en suspenso hasta tener ese resultado. Cuando eso
pase, debemos tener presente que, a esta altura, c vale 5.
2. Para evaluar euclext (328, 316) hacemos a = 328 y b = 316. Como b no es 0, hacemos el cálculo
intermedio (c, r) = cr (328, 316) = (1, 12). Ahora invocamos euclext (316, 12), por lo que quedamos en
suspenso hasta tener ese resultado. Cuando eso pase, debemos tener presente que, a esta altura, c vale
1.
3. Para evaluar euclext (316, 12) hacemos a = 316 y b = 12. Como b no es 0, hacemos el cálculo intermedio
(c, r) = cr (316, 12) = (26, 4). Ahora invocamos euclext (12, 4), por lo que quedamos en suspenso hasta
tener ese resultado. Cuando eso pase, debemos tener presente que, a esta altura, c vale 26.
4. Para evaluar euclext (12, 4) hacemos a = 12 y b = 4. Como b no es 0, hacemos el cálculo intermedio
(c, r) = cr (12, 4) = (3, 0). Ahora hacemos (s′ , t′ , g) = euclext (4, 0), por lo que quedamos en suspenso
hasta tener ese resultado. Cuando eso pase, debemos tener presente que, a esta altura, c vale 3.
5. Para evaluar euclext (4, 0) hacemos a = 4 y b = 0. No hay que hacer ningún cálculo intermedio, pues el
segundo argumento es 0. Por lo tanto, euclext (4, 0) = (1, 0, 4).
6. Volviendo al paso 4, resultó ser (s′ , t′ , g) = (1, 0, 4). Por lo tanto, euclext (12, 4) = (0, 1, 4) (recordar que
en ese paso era c = 3, y entonces s′ − t′ c = 1 − 0 · 3 = 1).
7. Volviendo al paso 3, resultó ser (s′ , t′ , g) = (0, 1, 4). Por lo tanto, euclext (316, 12) = (1, −26, 4) (recordar
que en ese paso era c = 26, y entonces s′ − t′ c = 0 − 1 · 26 = −26).
8. Volviendo al paso 2, resultó ser (s′ , t′ , g) = (1, −26, 4). Por lo tanto, euclext (328, 316) = (−26, 27, 4)
(recordar que en ese paso era c = 1, y entonces s′ − t′ c = 1 − (−26) · 1 = 27).
9. Volviendo al paso 1, resultó ser (s′ , t′ , g) = (−26, 27, 4). Por lo tanto, euclext(1.956, 328) = (27, −161, 4)
(recordar que en ese paso era c = 5, y entonces s′ − t′ c = −26 − 27 · 5 = −161).
En síntesis, euclext(1.956, 328) = (27, −161, 4). Del ejemplo 3.8, sabemos que mcd(1.956, 328) = 4, o sea
que la tercera componente de la terna está bien. Veamos las otras dos componentes:
27 · 1.956 + (−161) · 328 = 52.812 − 52.808 = 4 = mcd (1.956, 328)
O sea que se verifica lo deseado. Por lo tanto, podemos tomar s = 27 y t = −161. 
El proceso de más arriba para encontrar s y t puede ser mecanizado de la siguiente forma:
1. Si b 6= 0, escribir la ecuación de la división entre a y b. Digamos que el cociente es c1 y el resto r1 .
2. Si r1 6= 0, escribir la ecuación de la división entre b y r1 . Digamos que el cociente es c2 y el resto r2 .
3. Si r2 6= 0, escribir la ecuación de la división entre r1 y r2 . Digamos que el cociente es c3 y el resto r3 .
4. Si r3 6= 0, escribir la ecuación de la división entre r2 y r3 . Digamos que el cociente es c4 y el resto r4 .
Y continuar de esta forma, obteniendo en cada paso, ck y rk , hasta que lleguemos a una instancia en que
obtengamos un cn y rn con rn = 0. Esto finalmente va a ocurrir, pues la sucesión de restos es estrictamente
decreciente, y en algún paso debemos llegar a tener resto 0. Entonces rn−1 (el último resto no nulo del proceso)
es precisamente mcd (a, b). Los enteros s y t se obtienen eliminando r1 , r2 , . . ., rn−1 del conjunto de ecuaciones
de división que hemos escrito.
Ejemplo 3.16. Aplicar el procedimiento de más arriba para encontrar s y t tales que s · 1.956 + t · 328 =
mcd (1.956, 328).
Hacemos primero las divisiones sucesivas hasta llegar a tener resto nulo:
1.956 = 328 · 5 + 316
328 = 316 · 1 + 12
316 = 12 · 26 + 4
12 = 4·3
El último resto no nulo encontrado es 4, por lo que mcd (1.956, 328) = 4. De la penúltima ecuación, 4 =
316 − 12 · 26. Pero, de la segunda, es 12 = 328 − 316 · 1, por lo que 4 = 316 − (328 − 316 · 1) · 26, es decir,
4 = 316 · 27 − 328 · 26. Y, de la primera ecuación, 316 = 1.956 − 328 · 5, así que 4 = (1.956 − 328 · 5) · 27 − 328 · 26.
Por lo tanto, 27 · 1.956 + (−5 · 27 − 26) · 328 = 4, es decir, 27 · 1.956 + (−161) · 328 = 4. Entonces podemos tomar
s = 27 y t = −161. 
1.3. Otro algoritmo para M.C.D. Obtendremos ahora otro método para calcular mcd(a, b), conside-
rando la paridad de los argumentos a y b. Veamos primero un resultado que nos ayudará a calcular máximo
común divisor de dos números que tienen un factor común.
Teorema 3.17. Sean a y b dos enteros no ambos nulos, y sea m un entero positivo. Entonces,
mcd (m · a, m · b) = m · mcd (a, b)
42 3. MÁXIMO COMÚN DIVISOR. MÍNIMO COMÚN MÚLTIPLO

Demostración. Llamemos D = mcd(m · a, m · b) y d = mcd(a, b). Por la Identidad de Bezout, existen


enteros s, t tales que sa + tb = d, así que multiplicando miembro a miembro por m tenemos que s(ma) + t(mb) =
md. Como m y d son enteros positivos, por la observación 3.12 se cumple que md ≥ D. Además, como d | a y
d | b, tenemos que md | ma y md | mb, es decir, md es factor común de ma y mb, así que md ≤ D. Por lo tanto,
md = D, que es lo que deseábamos demostrar. 

Con esto, y viendo el ejemplo 3.8, podemos decir que mcd (7.824, 1.312) = 16, pues 7.824 = 4· 1.956 y
1.312 = 4·328; como ya teníamos que mcd(1.956, 328) = 4, resulta mcd (7.824, 1.312) = mcd (4 · 1.956, 4 · 328) =
4 · mcd (1.956, 328) = 4 · 4 = 16.
Corolario 3.18. Si d es un factor común positivo de a y b, entonces
 
a b 1
mcd , = mcd (a, b)
d d d
Demostración. Como d es factor común positivo de a y b, existen enteros  c1 y c2 tales que a = c1 d y
b = c2 d. Luego, d1 mcd (a, b) = d1 mcd (c1 d, c2 d) = d1 · d · mcd (c1 , c2 ) = mcd ad , db . 
a b
Corolario 3.19. Sean a y b enteros no ambos nulos. Entonces, los números mcd(a,b) y mcd(a,b) son copri-
mos.
Demostración. mcd (a, b) es un factor común positivo de a y b, por lo que, por corolario 3.18, se tiene
que
 
a b 1
mcd , = mcd (a, b) = 1
mcd (a, b) mcd (a, b) mcd (a, b)


Nótese que el corolario anterior se puede deducir también del teorema 3.13.
Teorema 3.20. Sean a, b y m enteros con m 6= 0. Si m | ab y m es coprimo con b, entonces m | a.
Demostración. m | am, y por hipótesis m | ab. Entonces, m es un divisor común de am y ab, por lo que,
por teorema 3.13, m | mcd (am, ab). Pero del teorema 3.17, sabemos que mcd (am, ab) = |a| · mcd (m, b) = |a|,
pues, por hipótesis, mcd (b, m) = 1. Por lo tanto, m | a. 

Teorema 3.21. Sean a y b enteros no ambos nulos. Sea m un entero coprimo con a y también coprimo
con b. Entonces, m es también coprimo con ab.
Demostración. Del teorema 3.10, existen enteros s1 , t1 , s2 , t2 tales que s1 a + t1 m = 1 y s2 b + t2 m = 1.
Multiplicando miembro a miembro estas dos igualdades, queda que
(s1 s2 )ab + (s1 at2 + t1 s2 b + t1 t2 m)m = 1
mostrando que 1 es una combinación lineal positiva a coeficientes enteros de ab y m. Como mcd (ab, m) es la
menor combinación lineal positiva a coeficientes enteros de ab y m (corolario 3.11), se sigue que mcd (ab, m) =
1. 

Teorema 3.22. Sean a y b enteros no ambos nulos. Sea m un entero coprimo con b. Entonces, mcd (am, b) =
mcd (a, b).
Demostración. Sean g = mcd (a, b) y G = mcd(am, b). Como g | a y g | b, se tiene que g | am y g | b, de
donde g ≤ G.
Tenemos también que G | am y G | b. Debe ser G coprimo con m (pues sea t un factor positivo de G y m;
como G | b, debe ser t | b y t | m; siendo m y b coprimos, debe ser t = 1). Por teorema 3.20, se tiene entonces
que G | a, y por lo tanto G es factor común de a y b. Por ello, G ≤ g.
En consecuencia, G = g, es decir, mcd(am, b) = mcd(a, b). 

Los teoremas 3.17 y 3.22, junto con el corolario 3.9, permiten diseñar un nuevo algoritmo para encontrar
mcd (a, b) de acuerdo a los siguientes lineamientos:
Si alguno de los dos es 0, el máximo común divisor es el módulo del otro número. 
Si tanto a como b son pares, aplicamos el teorema 3.17 con m = 2: mcd (a, b) = 2 · mcd a2 , 2b , sin
peligro alguno pues a/2 y b/2 son enteros.
Si a es par
 y b impar, aplicamos el teorema 3.22 con m = 2. Entonces, en este caso, es mcd  (a, b) =
mcd a2 , b . Si fuese a impar y b par, por la misma razón tenemos que mcd (a, b) = mcd a, 2b
1. MÁXIMO COMÚN DIVISOR 43

Si ambos son impares, y a ≥ b, aplicamos el corolario 3.9 (caso k = −1), resultando que mcd (a, b) =
mcd (a − b, b); pero además b es impar y a − b par, por lo que, por el ítem anterior, resulta mcd (a, b) =
mcd a−b
2 , b . Observemos
 que si por ejemplo a = 1 y b = −1, esto nos conduce a que mcd (1, −1) =
mcd 1−(−1)
2 , −1 = mcd (1, −1), es decir, a una “circularidad” que sería muy peligrosa en un algoritmo
recursivo. Para salvarla, podemos poner como segunda  componente no a b sino a |b|, sin cambiar el
valor del M.C.D. Entonces, mcd (a, b) = mcd a−b 2 , |b| en el caso en que a y b sean ambos impares.

Análogamente, cuando a y b son impares con b > a, se tiene que mcd (a, b) = mcd |a| , b−a 2 .
Como vemos, el procedimiento consiste en ir sacando factores 2. Por eso, al correspondiente algoritmo lo
podemos llamar mcd2 (a, b). Su especificación en la notación funcional es la siguiente:
mcd2(a, b) =
si (a = 0) contestar |b|
sino
si (b = 0) contestar |a|
sino
si (a es par) 
si (b es par) contestar 2 ·mcd2 a2 , 2b
sino contestar mcd2 a2 , b
sino 
si (b es par) contestar mcd2 a, 2b
sino 
si (a ≥ b) contestar mcd2 a−b2  , |b|
sino contestar mcd2 |a| , b−a
2

Ejemplo 3.23. Calcular mcd (84, 60) por aplicación del algoritmo mcd2.
mcd2 (84, 60) = 2 · mcd2 (42, 30) = 2 · (2 · mcd2 (21, 15)) = 4 · mcd2 (3, 15) = 4 · mcd2 (3, 6) = 4 · mcd2 (3, 3) =
4 · mcd2 (0, 3) = 4 · 3 = 12.
Luego, mcd (84, 60) = 12. 
Una cuestión interesante es la de comparar eficiencias de los dos algoritmos rápidos que tenemos para
calcular mcd (a, b): el de Euclides (que hemos llamado mcdeucl (a, b)) y este último, mcd2 (a, b). Para eso, se
puede programar una computadora con ambos algoritmos, y luego invocar a cada uno de ellos muchas veces, con
distintos valores de a y de b seleccionados al azar por la máquina, midiendo el tiempo que tarda cada algoritmo
en ejecutarse. Se han hecho pruebas de programación en el lenguaje C++, implementando ambos algoritmos
exactamente de la forma en que aquí están expresados. Se ha comprobado que un millón de ejecuciones del
algoritmo mcdeucl requirió un tiempo total de 9,1 seg., mientras que idéntica cantidad de invocaciones a mcd2
demandó 9,5 seg., resultando entonces que el algoritmo de Euclides es un 4 % más rápido que el otro. Ambos
son extraordinariamente más rápidos que el algoritmo de búsqueda de factores comunes dado por la definición.
1.4. Máximo común divisor de un conjunto de números. Hasta ahora hemos considerado la bús-
queda del M.C.D. de dos números. Podemos extender esta idea para el caso en que tengamos más de dos
números.
Definición 3.24. Sean a1 , . . . , an números enteros no todos nulos. El entero d es un divisor común de
a1 , . . . , an si d | a1 ∧ . . . ∧ d | an , es decir, si ∀k ∈ {1, . . . , n} , d | ak . El máximo común divisor de a1 , . . . , an ,
denotado mcd (a1 , . . . , an ), es el mayor de los divisores comunes de a1 , . . . , an .
Nótese que mcd (a1 , . . . , an ) es siempre un entero positivo.
Definición 3.25. Los enteros a1 , . . . , an se dicen coprimos si mcd (a1 , . . . , an ) = 1. Los enteros a1 , . . . , an
se dicen coprimos de a pares si para todos i 6= j, mcd (ai , aj ) = 1.
Nótese que los enteros a1 , . . . , an pueden ser coprimos sin ser coprimos de a pares. Por ejemplo, para los
enteros 3, 5, 6, se tiene que mcd (3, 5, 6) = 1 pero mcd (3, 6) 6= 1. Lo que sí ocurre siempre es que coprimidad de
a pares implica coprimidad.
Proposición 3.26. Si a1 , . . . , an son coprimos de a pares, entonces son coprimos.
Demostración. Demostraremos por el método indirecto. Supongamos que a1 , . . . , an no son coprimos.
Entonces a1 y an tienen un factor común mayor que 1, por lo que mcd (a1 , an ) 6= 1. Entonces, a1 , . . . , an no son
coprimos de a pares. 
Los siguientes resultados son generalizaciones directas de los correspondientes resultados para M.C.D. de
dos enteros, siendo su demostración completamente análoga y sin complicaciones por el paso de dos enteros a
n enteros.
44 3. MÁXIMO COMÚN DIVISOR. MÍNIMO COMÚN MÚLTIPLO

Teorema 3.27. Sean a1 , . . . , an enteros no todos nulos. Existen enteros x1 , . . . , xn tales que x1 a1 + · · · +
xn an = mcd (a1 , . . . , an ).
Corolario 3.28. Sean a1 , . . . , an enteros no todos nulos. El mcd (a1 , . . . , an ) es la menor de las combina-
ciones lineales positivas a coeficientes enteros de a1 , . . . , an .
Teorema 3.29. Sean a1 , . . . , an enteros no todos nulos, y sea d un entero. Se tiene que d = mcd (a1 , . . . , an )
si, y sólo si, d es un divisor común positivo de a1 , . . . , an que es divisible por todos los divisores comunes de
a1 , . . . , an .
Para el cálculo de mcd (a1 , . . . , an ), podemos prescindir de los elementos nulos de la lista: el conjunto de
divisores de 0 es Z − {0}, que contiene al conjunto de divisores de los elementos no nulos; por lo tanto, la
intersección de todos los conjuntos de divisores es igual a la intersección de los conjuntos de divisores de los
elementos distintos de 0. Por eso, a los fines prácticos, podemos hacer de cuenta que todos los números que hay
en la lista son distintos de 0.
La búsqueda de mcd (a1 , . . . , an ) puede hacerse aplicando reiteradas veces el algoritmo para calcular el
máximo común divisor de dos números, según se muestra a continuación.
Teorema 3.30. Sean a1 , . . . , an enteros no nulos. Hagamos D1 = a1 , y, para k ∈ {2, . . . , n}, llamemos
Dk = mcd (a1 , . . . , ak ). Entonces, para cualquier k ≥ 2, es Dk = mcd (Dk−1 , ak ).
Demostración. Si k = 2, D2 = mcd (a1 , a2 ) = mcd (D1 , a2 ) y entonces la proposición se cumple. Si k > 2,
queremos ver que Dk = mcd (Dk−1 , ak ). Observando que mcd (Dk−1 , ak ) es un divisor común de Dk−1 y de ak ,
y dado que Dk−1 | ai para cualquier i ∈ {1, . . . , k − 1}, tenemos que mcd (Dk−1 , ak ) | ai para cualquier i ∈
{1, . . . , k}, por lo que mcd (Dk−1 , ak ) | Dk (teorema 3.29). Por otro lado, Dk es factor común de a1 , . . . , ak−1 , ak .
En particular, Dk es factor común de a1 , . . . , ak−1 . Por teorema 3.29, Dk | mcd (a1 , . . . , ak−1 ), es decir, Dk |
Dk−1 . Como también Dk | ak , se tiene que Dk | mcd (Dk−1 , ak ) (teorema 3.13). Dado que los naturales Dk y
mcd (Dk−1 , ak ) son uno factor del otro, se tiene que Dk = mcd (Dk−1 , ak ) (proposición 2.10). 
Como consecuencia del teorema anterior, tenemos un mecanismo para calcular mcd (a1 , a2 , . . . , an ), según
se muestra en el siguiente ejemplo.
Ejemplo 3.31. Calcular mcd (1.956, 328, 402).
Primero hacemos D1 = 1.956. Luego, calculamos mcd(D1 , 328) = mcd(1.956, 328) = 4 (ejemplo 3.8).
Finalmente calculamos D3 = mcd(D2 , 402) = mcd(4, 402), que, por aplicación de cualquier algoritmo (prefiero
el tanteo en este caso), resulta igual a 2. Entonces, mcd (1.956, 328, 402) = 2. 

2. Mínimo común múltiplo


En muchas aplicaciones, se tiene una lista a1 , . . . , an de números enteros todos distintos de 0, e interesa
encontrar otro entero que sea múltiplo simultáneamente de todos ellos. Por ejemplo, cuando se desea hacer una
suma de números racionales que están expresados como cocientes de enteros. A los efectos de no sobrecargarnos
con cálculos tediosos, siempre tratamos que ese múltiplo en común sea lo más pequeño posible. En esta sección
nos ocuparemos de exponer métodos para calcularlo, previa definición formal del mismo. Nos concentraremos
sólo en el caso correspondiente a dos enteros.
Definición 3.32. Dados dos enteros a y b ambos no nulos, un múltiplo común a a y b es cualquier
número que es divisible simultáneamente por a y por b. Es decir, c es múltiplo común de a y b si a | c y b | c. El
menor de todos los múltiplos comunes positivos de a y b se denomina mínimo común múltiplo de a y b, y
se denota por mcm (a, b).
Veamos que la definición tiene sentido: si a 6= 0 y b 6= 0, entonces |ab| > 0 y |ab| es divisible por a y por b.
Entonces, el conjunto de los múltiplos comunes positivos de a y b es un subconjunto no vacío de N, y entonces,
por el PBO, mcm (a, b) es un número bien definido. Obsérvese que 0 es siempre un múltiplo común de a y
b, pero no cuenta a la hora de calcular el mínimo común múltiplo de a y b, pues, por definición, siempre es
mcm (a, b) > 0. Además, por lo que acabamos de decir, siempre es mcm (a, b) ≤ |ab|.
Ejemplo 3.33. Calcular mcm (18, 12).
Podemos empezar observando que los múltiplos positivos de 18 son 18, 36, 54, 72, 90, 108, 126, 144, . . . y que
los de 12 son 12, 24, 36, 48, 60, 72, 84, 96, 108, . . . Los múltiplos positivos comunes a ambos son 36, 72, 108, . . ., de
los cuales el menor es 36. Por lo tanto, mcm (18, 12) = 36. 
En el ejemplo hemos empleado un algoritmo poco eficiente: el de elaborar la lista de múltiplos de ambos,
hacer la intersección y ver el elemento mínimo. En mucho, esto se parece a la búsqueda de mcd (a, b) por
elaboración de listas de factores comunes. Afortunadamente, hay otras maneras, mucho más eficientes, para
calcular mcm (a, b). Notemos que mcm (a, b) = mcm (|a| , |b|) (proposición 2.23), así que alcanza con saber
calcular mínimo común múltiplo de enteros positivos.
2. MÍNIMO COMÚN MÚLTIPLO 45

Una primera cosa que nos puede llamar la atención de nuestro ejemplo anterior es que todos los múltiplos
comunes de 12 y 18 son divisibles por mcm (18, 12). Demostraremos ahora que eso es cierto en general.

Teorema 3.34. Sean a y b enteros no nulos, y sea h un entero. Se tiene que h = mcm (a, b) si, y sólo si,
h es un múltiplo común positivo de a y b que es un factor de cualquier múltiplo común de a y b.

Demostración. Para la ida: Por definición, h es un múltiplo común positivo de a y b, por lo que existen
t1 , t2 ∈ Z tales que h = t1 a y h = t2 b. Sea m un múltiplo común de a y b, por lo que existen n1 , n2 ∈ Z tales que
m = n1 a y m = n2 b. Sean c y r el cociente y resto de dividir m por h. Entonces, tenemos que m = ch + r con
0 ≤ r < h. Reemplazando a m y h en esta ecuación en términos de a, tenemos que n1 a = ct1 a + r, por lo que
r = (n1 − ct1 ) a es decir, a | r. Análogamente, n2 b = ct2 b + r, por lo que r = (n2 − ct2 ) b es decir, b | r. Luego, r
es un múltiplo común de a y b. Sabemos que h > r ≥ 0. No puede ser r > 0, pues en ese caso sería un múltiplo
común positivo de a y b menor que mcm (a, b), contradiciendo la definición de mínimo común múltiplo. Por lo
tanto, es r = 0, y entonces m = ch, es decir, m es un múltiplo de mcm (a, b).
Para la vuelta: Como h es múltiplo común positivo de a y b, se tiene que h ≥ mcm (a, b). Como mcm (a, b)
es múltiplo común de a y b, h | mcm (a, b). Dado que h y mcm (a, b) son ambos positivos, es h ≤ mcm (a, b)
(proposición 2.9). Luego, h = mcm (a, b). 

Teorema 3.35. Sean a y b enteros no nulos, y sea m un entero positivo. Se tiene que mcm (m · a, m · b) =
m · mcm (a, b).

Demostración. Hagamos h = mcm (ma, mb) y h′ = mcm (a, b). Como h es múltiplo de ma, es múltiplo
de m, por lo que existe n1 ∈ Z tal que h = n1 m. Más aún, como m y h son ambos positivos, debe ser n1 ∈ Z+ .
Como a | h′ y b | h′ , tenemos que am | h′ m y que bm | h′ m, es decir, h′ m es múltiplo común de am y bm.
Entonces, por teorema 3.34, h | h′ m, es decir, n1 m | h′ m, de donde se ve que n1 | h′ . Por otra parte, am | h
y bm | h, es decir, am | n1 m y bm | n1 m, por lo que a | n1 y b | n1 ; entonces, de nuevo por el teorema 3.34,
h′ | n1 . Ya que n1 | h′ y h′ | n1 , siendo ambos enteros positivos, tenemos que n1 = h′ (proposición 2.10). Por lo
tanto, h = h′ m, es decir, mcm (m · a, m · b) = m · mcm (a, b). 

2.1. Obtención del M.C.M. a partir del M.C.D. Los siguientes resultados proporcionan una manera
eficiente de calcular mcm (a, b) (siempre que sepamos calcular eficientemente mcd (a, b)).

Lema 3.36. Sean a y b enteros no nulos coprimos. Entonces, mcm (a, b) = |ab|.

Demostración. Hagamos h = mcm (a, b), recordando que es h > 0. Como h es múltiplo de a, también es
múltiplo de |a|, por lo que existe m ∈ N tal que h = m |a|. Entonces, como b | h, tenemos que b divide a m |a|.
Pero puesto que por hipótesis b es coprimo con a, debe ser que b | m (teorema 3.20). Por lo tanto, es |b| ≤ m, y
entonces |ab| ≤ |a| m = h. Es decir, |ab| ≤ mcm (a, b). Pero también sabemos que siempre es mcm (a, b) ≤ |ab|,
pues |ab| es un múltiplo común de a y b. Por lo tanto, mcm (a, b) = |ab|. 

Teorema 3.37. Sean a y b enteros no nulos. Se tiene que


|ab|
mcm (a, b) =
mcd (a, b)
Demostración. Sea g = mcd (a, b). Del corolario 3.19, tenemos que mcd (a/g, b/g) = 1. Por lo tanto, por
el lema 3.36, es
 
a b a b |ab|
mcm , = =
g g g g g2
Esto equivale a que
 
a b |ab|
g · mcm , =
g g g
Pero, por el teorema 3.35, es
   
a b a b
g · mcm , = mcm g , g = mcm (a, b)
g g g g
Por lo tanto,
|ab|
mcm (a, b) =
mcd (a, b)

46 3. MÁXIMO COMÚN DIVISOR. MÍNIMO COMÚN MÚLTIPLO

3. Ecuaciones diofantinas lineales


Ecuaciones del estilo ax + by = c en las variables reales x e y nos son completamente familiares, y lo
primero que se nos viene a la mente cuando vemos una ecuación así es una línea recta en un plano cartesiano.
Incluso en el caso en que a, b y c sean números enteros. Pero ahora podemos preguntarnos: ¿Tiene soluciones
para x e y enteros? Por supuesto que la pregunta atañe no sólo a las ecuaciones lineales, sino también a otras
más generales (y tal vez con más variables). En resumen, dada una ecuación a coeficientes enteros, ¿bajo qué
condiciones admite soluciones enteras para las variables intervinientes? Parece ser que uno de los primeros en
interesarse en estas cuestiones fue el griego Diofanto, y, en su honor, se llamó ecuaciones diofantinas a aquellas
con coeficientes enteros y en las que se buscan soluciones enteras para las variables. Desde entonces y hasta
nuestros días, mucho es lo que se ha investigado sobre ellas, pues surgen naturalmente en diferentes contextos.
Las más sencillas de tales ecuaciones son las ecuaciones diofantinas lineales, que tienen la forma ax + by = c
con a, b, c ∈ Z. Tales ecuaciones han sido completamente entendidas, y, en su resolución, es de suma importancia
conocer el máximo común divisor de a y de b, y su relación con el entero c. El caso en que a = 0 = b es
completamente trivial: si c 6= 0, la ecuación no admite solución, y si c = 0 el conjunto solución es Z2 . Así que
sólo nos dedicaremos a estudiar el caso en que a y b no son simultáneamente nulos.
Ante todo, observemos que, cuando nos preguntábamos por la existencia de enteros s y t tales que sa + tb =
mcd (a, b), para a y b dados, estábamos resolviendo una ecuación diofantina lineal. Así que algo de experiencia
tenemos ya al respecto: sabemos que una ecuación diofantina lineal admite solución en Z2 en el caso en que el
término independiente c es precisamente mcd (a, b). Este punto de partida nos permite deducir una condición
necesaria y suficiente para que una ecuación diofantina lineal cualquiera admita solución en Z2 .
Teorema 3.38. Sean a, b y c enteros tales que a y b no son ambos nulos. La ecuación diofantina lineal
ax + by = c tiene solución para x e y enteros si, y sólo si, c es múltiplo de mcd (a, b).
Demostración. Para la ida, supongamos que existen enteros x0 e y0 tales que ax0 + by0 = c. Dado que
mcd (a, b) es factor de a y de b, por proposición 2.26, se tiene que mcd (a, b) es factor de ax0 + by0 , es decir,
mcd (a, b) es divisor de c. Esto equivale a decir que c es múltiplo de mcd (a, b).
Para la vuelta: supongamos que c es múltiplo de mcd (a, b), es decir, existe k ∈ Z tal que c = k · mcd (a, b).
Por el teorema 3.10, existen enteros s y t tales que sa + tb = mcd (a, b). Multiplicando miembro a miembro por
k, tenemos que (ks) a + (kt) b = k · mcd (a, b). Por lo tanto, tomando x0 = ks e y0 = kt, tenemos demostrado que
existen enteros x0 , y0 tales que ax0 + by0 = c, es decir, la ecuación diofantina lineal admite solución en Z2 . 

Antes de ver ejemplos, discutamos sobre la cantidad de soluciones que tiene una ecuación lineal diofantina
ax + by = c cuando admite al menos un par (x0 , y0 ) ∈ Z2 como solución. Designemos g = mcd (a, b). Sea (x, y) ∈
Z2 cualquier solución de la ecuación. Se tiene que ax0 + by0 = c = ax + by. Por lo tanto, a (x − x0 ) = b (y0 − y),
y, entonces,
a b
(*) (x − x0 ) = (y0 − y)
g g
Si a = 0, es g = b, y la igualdad se satisface con x cualquier entero e y = y0 . Entonces, el conjunto
solución es {(k, y0 ) : k ∈ Z}.
Si b = 0, es g = a, y la igualdad se satisface con y cualquier entero y x = x0 . Entonces, el conjunto
solución es {(x0 , k) : k ∈ Z}.
Si a 6= 0 y b 6= 0: ya que a/g y b/g no tienen factores comunes (corolario 3.19), se tiene que a/g debe
dividir a y0 − y y que b/g debe dividir a x − x0 (teorema 3.20). Es decir, deben existir enteros m y n
tales que y0 − y = ma/g y x − x0 = nb/g. Reemplazando en la ecuación (*), tenemos que
a b b a
n = m
g g g g
de donde, para que se cumpla la igualdad, debe ser m = n (pues tanto ab como g son distintos de 0, y
entonces pueden cancelarse). Por lo tanto, en este caso, todas las soluciones de la ecuación diofantina lineal
tienen la forma  
b a
(x, y) = x0 + n , y0 − n
g g
en donde n es un entero cualquiera (observar que esta fórmula engloba también las soluciones que obtuvimos
para los casos a = 0 o b = 0). Además, es fácil verificar que cualquier par de esa forma es solución de la ecuación,
porque
   
b a b a
a x0 + n + b y0 − n = ax0 + an + by0 − bn = ax0 + by0 = c
g g g g
Tenemos entonces demostrado el siguiente resultado.
3. ECUACIONES DIOFANTINAS LINEALES 47

Teorema 3.39. Sean a y b enteros no ambos nulos, y supongamos que la ecuación diofantina lineal ax+by =
c admite solución (x0 , y0 ) ∈ Z2 . Entonces, el conjunto de todas las soluciones en Z2 de la ecuación es el conjunto
  
b a
x0 + n , y0 − n :n∈Z
mcd (a, b) mcd (a, b)
Ejemplo 3.40. Encontrar todas las soluciones enteras de 1.956x + 328y = 5.
Tomamos a = 1.956 y b = 328. Del ejemplo 3.8, sabemos que mcd (1.956, 328) = 4, que no es factor de 5.
Luego, la ecuación no tiene solución para x e y enteros. 
Ejemplo 3.41. Encontrar todas las soluciones enteras de 1.956x + 328y = 12.
Tomamos a = 1956 y b = 328. Tenemos que mcd(1.956, 328) | 12, pues 12 = 4 · 3. Por lo tanto, busquemos
una solución a la ecuación. Del ejemplo 3.15, sabemos que los enteros s = 27 y t = −161 satisfacen 27 · 1.956 +
(−161) · 328 = 4. Multiplicando miembro a miembro por 3, tenemos que 81 · 1.956 + (−483) · 328 = 12, así que
una solución a la ecuación es el par (x0 , y0 ) = (81, −483). Para buscar todas las soluciones, observemos que
b
= 328 = 82
mcd(a,b) 4
a
= 1.956 = 489
mcd(a,b) 4
Por lo tanto, el conjunto de todas las soluciones enteras de la ecuación es
{(81 + 82n, −483 − 489n) : n ∈ Z}
De más está decir que si graficamos este conjunto en R2 , los puntos caen sobre la recta y = − 1.956
328 x +
12
328 , y
son precisamente todos los puntos de la recta en los que ambas coordenadas son números enteros. 
Ejemplo 3.42. Encontrar todos los enteros s y t tales que 1.956s + 328t = mcd (1.956, 328).
En esta ecuación diofantina, a = 1.956, b = 328 y c = mcd(1.956, 328). De dos maneras distintas sabemos
que la ecuación admite solución: por el teorema 3.10 (que nos condujo a la solución dada en el ejemplo 3.15), y
por el teorema 3.38 (observando que c es múltiplo de mcd (a, b)). De cualquier modo, una solución es (x0 , y0 ) =
(27, −161). Al igual que en el ejemplo anterior,
b
= 328 = 82
mcd(a,b) 4
a
= 1.956 = 489
mcd(a,b) 4
de modo que el conjunto de todos los pares de enteros que verifican la ecuación bajo estudio es
{(27 + 82n, −161 − 489n) : n ∈ Z}

Generalizando el ejemplo anterior, tenemos el siguiente resultado, que responde a un interrogante que
habíamos dejado planteado con anterioridad: el de si era única la pareja de enteros s y t tales que sa + tb =
mcd (a, b).
Teorema 3.43. Sean a y b enteros no ambos nulos. El entero mcd (a, b) puede representarse de infinitas
maneras como combinación lineal de a y de b.
Demostración. Del teorema 3.10, existen (s0 , t0 ) tales que s0 a + t0 b = mcd (a, b), y del teorema 3.39, el
conjunto de todos los pares de enteros (s, t) que satisfacen la ecuación sa + tb = mcd (a, b) es
  
b a
s0 + n , t0 − n :n∈Z
mcd (a, b) mcd (a, b)
que es un conjunto infinito. 
Con la ayuda del teorema 3.27, el teorema 3.38 admite una inmediata generalización a las ecuaciones
diofantinas lineales de varias variables.
Teorema 3.44. Sean a1 , . . . , an enteros no todos nulos, y sea c un entero. La ecuación diofantina lineal
a1 x1 + · · · + an xn = c tiene solución para x1 , . . . , xn enteros si, y sólo si, c es múltiplo de mcd (a1 , . . . , an ).
Capítulo 4

EL TEOREMA FUNDAMENTAL DE LA ARITMÉTICA

En el presente capítulo, nos dedicaremos a ver de qué manera los números primos se constituyen en las
unidades fundamentales que permiten descomponer a cualquier número en un producto de ellas. Difícilmente
vayamos a sorprender a alguien con el contenido del Teorema Fundamental, que asevera la existencia y unicidad
de tal descomposición, pues el mismo está tan instalado en nuestra mente, desde hace ya tanto tiempo, que
nos parece la cosa más obvia y natural del mundo. Sin embargo, más de uno titubearía si le solicitamos una
demostración de este hecho. Además, no debe haber sido tan obvio para los matemáticos de hace más de
doscientos años (y veremos aquí algo del porqué de la falta de obviedad), pues parece ser que el primero en
formalizar explícitamente una demostración fue el mismísimo Gauss en su libro Disquisitiones Arithmeticae de
1801 (aunque se acepta que el resultado era ya tildado como verdadero desde mucho antes).
El Teorema Fundamental nos guiará a nuevos criterios de divisibilidad y de búsqueda de máximo común
divisor y mínimo común múltiplo. También nos dará pistas sobre cuántos divisores puede tener un número,
sobre la posibilidad de resolver en racionales ciertas ecuaciones polinómicas (como por ejemplo saber si la raíz
cuadrada de un primo puede ser racional) o, más generalmente, cuáles son todas las soluciones en N de ecuaciones
tales como x2 + y 2 = z 2 .

1. Factorización de números naturales: existencia y unicidad


Consideremos como universo de trabajo el conjunto de los números naturales. ¿Podemos expresar al número
60 como producto de factores de ese universo, vale decir, podemos factorizar a 60 en el universo de los naturales?
Dicho de otro modo, ¿podemos dar una sucesión finita de números naturales tal que multiplicando todos los
números de esa sucesión obtengamos 60? Por supuesto que sí, y no sólo una, sino varias de tales sucesiones, en
las que varían tanto el número de factores intervinientes como el valor de los mismos. Por ejemplo:
• {4, 15} • {15, 4} • {20, 3} • { 20, 3, 1, 1}
• {3, 4, 5} • { 5, 1, 4, 3} • { 1, 60} • {60}
Y hay varias más. Algunas de ellas son muy parecidas entre sí; otras constan de un único término.
Definición 4.1. Sea m un número natural, y sea {p1 , p2 , . . . , pn } una sucesión finita de números naturales
(no necesariamente todos distintos) tal que m = p1 p2 · · · pn . Decimos entonces que la sucesión {p1 , p2 , . . . , pn }
es una factorización de m.
O sea que una factorización de m no es más que una lista de números tales que, multiplicados entre sí,
producen m. Convendremos que multiplicar elementos de una lista unitaria produce como resultado el único
término de la lista.
Representaremos a las factorizaciones de números directamente sin comas que separen elementos; eventual-
mente usaremos el signo de multiplicación (·). Por ejemplo, 2 · 30 es una factorización de 60.
Nótese que 4 · 15 y 15 · 4, si bien contienen los mismos factores, corresponden a disposiciones en diferente
orden de los mismos; como sucesiones, {4, 15} y {15, 4} son distintas. Sin embargo, si nos independizamos del
orden de los factores, ambas representan la misma manera de factorizar al 60.
Definición 4.2. Decimos que dos factorizaciones de un mismo número son la misma factorización
(excepto por el orden de los factores) si una de ellas es una conmutación de los factores de la otra. En
caso contrario, las factorizaciones se dicen distintas.
Dada una factorización {q1 , q2 , . . . , qn }, es posible siempre ordenar sus términos en orden creciente, es decir,
permutar sus términos de modo que resulte una sucesión {p1 , p2 , . . . , pn } con p1 ≤ p2 ≤ · · · ≤ pn (obsérvese
que no pedimos estrictamente creciente, pues algunos factores pueden ser iguales). Dos factorizaciones son la
misma si, y sólo si, ordenando respectivamente sus términos en orden creciente, producen la misma sucesión.
Dos factorizaciones son distintas cuando la función identidad no establece una correspondencia biyectiva entre
los términos de cada una; puestas respectivamente en orden creciente, no producen la misma sucesión, ya sea
porque difieren en longitud o en alguno de los términos.
¿Podemos expresar al número 60 como producto de factores primos? De todas las descomposiciones que
hicimos más arriba, la que más se aproxima a éso es 60 = 3 · 4 · 5, a la que lo único que le falla es que 4 no es
primo. Pero no hay problema: 4 = 2 · 2, así que 60 = 3 · 2 · 2 · 5. Pudimos. Es decir, 60 es el producto de los
49
50 4. EL TEOREMA FUNDAMENTAL DE LA ARITMÉTICA

números primos que componen la sucesión finita {3, 2, 2, 5}. Otra descomposición en primos para 60 es 2 · 5 · 3 · 2,
que es la misma que 3 · 2 · 2 · 5 excepto por el orden de los factores (si ordenamos ambas listas en orden creciente,
llegamos a un mismo resultado: {2, 2, 3, 5}). Y lo mismo va a pasar con cualquier descomposición en primos que
hagamos del número 60, obviamente. ¿Obviamente? ¿Qué tan obviamente? Si estuviéramos descomponiendo
un primo, la cosa sí es obvia: si p es un natural primo, p es el producto de todos los primos que componen
la lista {p}, y no puede haber otra lista con otros primos pues p no tiene otros factores primos. Pero para los
compuestos...
Por un momento, consideremos como universo de trabajo el conjunto de los números enteros positivos pares,
{2, 4, 6, 8, . . .}, y llamemos primitivo a todo elemento de ese universo que no es expresable como producto de
dos o más factores de ese universo. Por ejemplo, 2 y 6 son primitivos, mientras que 4 no (4 = 2 · 2) y 8 tampoco
(8 = 2 · 4). En general, son primitivos todos los números de la forma 4k + 2 con k ∈ N, es decir, son primitivos los
números 2, 6, 10, 14, . . ., y todos los otros resultan compuestos. Por un argumento inductivo, se puede demostrar
que cualquier número de nuestro conjunto universal es factorizable como producto de primitivos. Pero, ¿es única
esa factorización, aún si disponemos los factores en orden creciente? ¡No! Por ejemplo, 60 = 2 · 30 = 6 · 10. Hay
dos factorizaciones distintas para 60 en el universo de los pares.
El rol que juegan los números primitivos en el caso de los números pares es el mismo que el que juegan los
primos en N, en cuanto a la posibilidad de factorización de cualquier elemento del respectivo universo. ¿Qué nos
garantiza entonces que en N la factorización en primos es única? Con el ejemplo de los números pares, confiamos
en haber transmitido al lector la inseguridad que deben haber sentido hace años los matemáticos al respecto:
¿estaremos en la misma situación cuando hablamos de N con sus primos que cuando hablamos de los pares con
sus primitivos? Es probable que esa inseguridad haya conducido a la búsqueda de una demostración formal de
la existencia y unicidad de factorización en primos.
El puntapié inicial hacia la demostración es el siguiente resultado, muy conocido como la regla de oro de la
Aritmética.
Lema 4.3. Sea p un natural primo, y sean a y b naturales. Supongamos que p | ab. Entonces p | a o p | b.
Demostración. Si p | a, ya está demostrada la veracidad de la tesis. Si p no divide a a, es coprimo con a
(proposición 3.4), por lo que, por teorema 3.20, es p un factor de b. 
Con una simple inducción, la regla de oro de la Aritmética puede generalizarse diciendo que si un primo p
divide al producto a1 a2 · · · an , entonces p | ai para algún i ∈ {1, . . . , n}.
Teorema 4.4. (Teorema Fundamental de la Aritmética) Todo número natural mayor que 1 puede
expresarse como producto de naturales primos (con, tal vez, un solo factor). La factorización es única excepto
por el orden de los factores.
Demostración. Desglosaremos la prueba en dos partes: primero existencia y luego unicidad de la facto-
rización.
Existencia: Queremos ver que ∀n ≥ 2, ∃k ≥ 1, p1 , . . . , pk ∈ N tales que p1 , . . . , pk son todos primos y
n = p1 · · · pk . Lo haremos por el Principio de Inducción, versión fuerte.
Observemos primero que si n es un número primo, tomamos k = 1 y p1 = n, cumpliéndose que p1
es primo y n = p1 . En particular, esto muestra la existencia de la factorización para el número 2, la
base de la inducción.
Ahora si n no es primo, debe ser n = a · b, con 1 < a ≤ b < n. Entonces, por hipótesis inductiva, a =
p1 · · · pk y b = q1 · · · qj con p1 , . . . , pk , q1 , . . . , qj todos primos. Por lo tanto, n = a · b = p1 · · · pk q1 · · · qj ,
mostrando que n posee al menos una factorización en primos.
Unicidad: Queremos probar que si p1 · · · pk = q1 · · · qj con p1 , . . . , pk , q1 , . . . , qj todos primos y p1 ≤
· · · ≤ pk y q1 ≤ · · · ≤ qj , entonces k = j y p1 = q1 , . . . , pk = qk . Lo haremos por inducción en k (el
número de factores en la factorización de la izquierda).
1. Si k = 1, no puede ser j > 1, pues, en ese caso, sería p1 = q1 · · · qj , con 1 < q1 < p1 , y entonces q1
sería un factor propio de p1 , contradiciendo que p1 es primo. Entonces j = 1, y p1 = q1 , cumpliéndose
la aseveración.
2. Supongamos válido el enunciado para k, y consideremos un caso en que p1 · · · pk pk+1 = q1 · · · qj con
p1 , . . . , pk , pk+1 , q1 , . . . , qj todos primos y p1 ≤ · · · ≤ pk ≤ pk+1 y q1 ≤ · · · ≤ qj . Notemos que, por
el caso base de la inducción, debe ser j ≥ 2.
Por la Regla de Oro tenemos que pk+1 | qm para algún m ∈ {1, . . . , j}; pero siendo ambos primos,
debe ser pk+1 = qm . Como qm ≤ qj , es pk+1 ≤ qj . Por el mismo razonamiento, qj debe ser igual a
algún pi ≤ pk+1 , y entonces qj ≤ pk+1 . De aquí que pk+1 = qj . Entonces, ya que p1 · · · pk pk+1 =
q1 · · · qj , tenemos que p1 · · · pk = q1 · · · qj−1 . Aquí, por hipótesis de inducción, es k = j − 1 y
p1 = q1 , . . . , pk = qj−1 , y entonces, en resumen, tenemos que k + 1 = j y que p1 = q1 , . . . , pk+1 = qj ,
según queríamos demostrar.

1. FACTORIZACIÓN DE NÚMEROS NATURALES: EXISTENCIA Y UNICIDAD 51

Observemos que la unicidad garantizada por el Teorema Fundamental sería falsa si nuestra definición de
número primo hubiera permitido que 1 lo fuese. Por ejemplo, 2 = 1 · 2 = 1 · 1 · 2.
Llamamos factorización canónica de un número natural a la descomposición en factores primos del mismo
en la que los primos que la componen están ubicados en orden creciente. Es decir, la factorización canónica
de un número tiene la forma p1 p2 · · · pk en donde p1 , p2 , . . ., pk son todos primos y 0 < p1 ≤ p2 ≤ · · · ≤ pk .
Del Teorema Fundamental se desprende directamente la existencia y unicidad de la factorización canónica de
cualquier natural mayor que 1. Por ejemplo, la factorización canónica de 60 es 2 · 2 · 3 · 5. Dado que varios factores
de la factorización canónica pueden ser iguales, es común agruparlos y usar notación de exponenciación. De este
modo, todo número a > 1 puede expresarse en su factorización canónica de la forma a = pα 1 α2
1 p2 · · · pn en
αn

donde p1 , p2 , . . ., pn son todos primos, α1 , α2 , . . ., αn son todos naturales positivos y 0 < p1 < p2 < · · · < pn .
Cada αi se denomina orden, o multiplicidad, del primo pi en a. Escrito de esta forma, 60 se expresa como
22 · 3 · 5, es decir, n = 3, α1 = 2, α2 = 1, α3 = 1, p1 = 2, p2 = 3 y p3 = 5. Lisa y llanamente, el Teorema
Fundamental de la Aritmética establece lo siguiente: dados dos números a y b cuyas factorizaciones canónicas
β1 β2 βk
son, respectivamente pα 1 α2
1 p2 · · · pn y q1 q2 · · · qk , se tiene que a = b si, y sólo si, k = n, p1 = q1 , p2 = q2 ,
αn

. . ., pn = qk , α1 = β1 , α2 = β2 , . . ., αn = βk . Es decir, dos números son iguales si, y sólo si, sus respectivas
factorizaciones canónicas contienen exactamente los mismos primos y con las mismas multiplicidades. Si algún
primo de una de las factorizaciones no aparece en la otra, o si aparece con otra multiplicidad, los números a y b
no pueden ser iguales. Mostramos un ejemplo del uso del Teorema Fundamental en la siguiente proposición.
Proposición 4.5. Sean a y b naturales positivos y coprimos tales que ab es un cuadrado. Entonces, a y b
son cuadrados.
β1
Demostración. Sean pα 1 · · · pn y q1 · · · qm las factorizaciones canónicas de a y b respectivamente, con
1 αn βm
+
α1 , . . . , αn , β1 , . . . , βm ∈ Z . Siendo a y b coprimos, se sigue que ∀i ∈ {1, . . . , n} , ∀j ∈ {1, . . . , m} , pi 6= qj .
Por hipótesis, existe c ∈ N tal que ab = c2 . Sea r1γ1 · · · rkγk la factorización canónica de c, con γ1 , . . . , γk ∈ Z+ .
Entonces es  
β1 2
(pα αn βm
1 · · · pn ) q 1 · · · q m
1
= (r1γ1 · · · rkγk )
es decir,
2γ1
pα αn β 1 βm
1 · · · pn q1 · · · qm = r1
1
· · · rk2γk
Sea i tal que 1 ≤ i ≤ n. La multiplicidad de pi en el miembro de la izquierda de la anterior igualdad es αi
(pues ninguno de los qj es igual a pi ). Entonces, debe haber un t ∈ {1, . . . , k} tal que pi = rt , por lo que la
multiplicidad de pi en el miembro de la derecha es 2γt . Por el Teorema Fundamental, debe ser αi = 2γt . Como
i se eligió arbitrariamente, se ve que la multiplicidad de cada primo en la factorización de a es par, es decir,
 2
a = p2j 2jn
1 · · · pn
1
= pj11 · · · pjnn , para j1 , . . . , jn naturales positivos. Entonces, a es el cuadrado del número
natural pj11 · · · pjnn . Análogamente se demuestra que b también es un cuadrado. 

A veces, es conveniente usar una pequeña variación para la forma canónica con exponentes, permitiendo que
algunos exponentes sean 0. Por ejemplo, 45 = 20 · 32 · 5. Esta forma de factorización es útil por varios motivos:
Todo natural positivo es expresable de esta forma. Esto incluye al 1. Por ejemplo, 1 = 20 = 20 · 50 , etc.
Cuando se desea estudiar propiedades relativas a la factorización en primos de dos o más números,
siempre puede hacerse de cuenta que las listas de los primos que intervienen en las respectivas facto-
rizaciones son idénticas (pues si un primo no aparece en la factorización canónica de un número, se lo
puede incluir con exponente 0). Cuando dos números están expresados como producto de potencias de
primos de una misma lista, tenemos que ambos son iguales si, y sólo si, los correspondientes primos en
cada factorización tienen exponentes iguales.

1.1. El Teorema Fundamental de la Aritmética en enteros. Si recordamos nuestra definición de


número primo en el ámbito de los números enteros, tenemos que por cada natural primo encontramos un
primo negativo también. Con la regla de los signos presente, nos preguntamos por la existencia y unicidad de
descomposición en factores primos enteros de un dado número entero a de módulo mayor que 1. La existencia
es bastante obvia, pues |a| es natural y admite factorización en factores primos naturales (que también son
enteros), así que a admite esa misma factorización salvo que cambiando de signo al primer factor en el caso en
que a es negativo. Pero enseguida nos damos cuenta de que las posibilidades de descomponer a a en factores
primos enteros pueden ser muchas. Por ejemplo, 60 = 2 · 2 · 3 · 5 = (−2) · 2 · (−3) · 5 = (−2) · (−2) · (−3) · (−5).
En todas estas descomposiciones del 60, ni siquiera intervienen los mismos primos.
Pero la cosa cambia si nos preguntamos por descomponer a un entero de módulo mayor que 1 en factores
primos naturales (anteponiendo, quizá, un signo menos). Allí, la descomposición de a ∈ Z es la misma que la
de |a| ∈ N, salvo que multiplicada por un número s que vale 1 o −1 según si a es positivo o negativo. Eso es lo
que dice el Teorema Fundamental adaptado al conjunto de los números enteros.
52 4. EL TEOREMA FUNDAMENTAL DE LA ARITMÉTICA

Teorema 4.6. (Teorema Fundamental de la Aritmética en enteros) Sea a un entero tal que |a| > 1.
Entonces existe una sucesión finita {p1 , p2 , . . . , pn } de primos positivos, y un entero s ∈ {−1, 1}, tales que a =
sp1 p2 · · · pn con p1 ≤ p2 ≤ · · · ≤ pn . La descomposición de a es única, en el sentido de que si a = s′ p′1 p′2 · · · p′m
con s′ ∈ {−1, 1} y p′1 , p′2 , . . . , p′m primos positivos tales que p′1 ≤ p′2 ≤ · · · ≤ p′m , entonces m = n, s′ = s,
p′1 = p1 , p′2 = p2 , . . ., p′n = pn .
Demostración. Del teorema 4.4, tenemos que |a| admite una única descomposición de la forma |a| =
p1 p2 · · · pn con p1 , p2 , . . . , pn primos positivos y p1 ≤ p2 ≤ · · · ≤ pn . Por lo tanto, o bien es a = p1 p2 · · · pn o
bien es a = (−1) p1 p2 · · · pn , es decir, a = sp1 p2 · · · pn para un único s ∈ {−1, 1} y una única sucesión finita de
primos naturales p1 , p2 , . . . , pn con p1 ≤ p2 ≤ · · · ≤ pn . 

2. Algunas consecuencias del Teorema Fundamental


2.1. Divisibilidad a partir de la factorización. Cuando dos números naturales están expresados en
su forma canónica pero con la posibilidad de que los exponentes sean 0, es muy fácil determinar si uno de ellos
divide al otro.
Teorema 4.7. Sean a y b dos naturales positivos cuyas factorizaciones en primos sean
a = pα 1 α2 αn
1 p 2 · · · pn , α1 , . . . , αn ∈ N
b = pβ1 1 pβ2 2 · · · pβnn , β1 , . . . , βn ∈ N
con p1 , . . . , pn primos, 0 < p1 < · · · < pn . Se tiene que a divide a b si, y sólo si, αi ≤ βi para todo i ∈ {1, . . . , n}.
Demostración. Supongamos que a | b. Entonces existe c ∈ N tal que ac = b. Todo factor primo de c
es también factor primo de b, por lo que podemos escribir c = pγ11 pγ22 · · · pγnn con γi ∈ N para i = 1, . . . , n.
Obsérvese que ac = p1α1 +γ1 p2α2 +γ2 · · · pnαn +γn . Siendo iguales los números ac y b, por el Teorema Fundamental,
es αi + γi = βi para todo i ∈ {1, . . . , n}. De allí, se sigue que para todo 1 ≤ i ≤ n es αi ≤ βi .
Para la vuelta, supongamos que para todo i ∈ {1, . . . , n} es αi ≤ βi . Esto quiere decir que para cada
i ∈ {1, . . . , n} existe γi ∈ N tal que αi + γi = βi . Definamos c = pγ11 · · · pγnn , resultando c un número natural que
γ1 α1 +γ1
satisface ac = (pα αn γn
1 · · · pn ) (p1 · · · pn ) = p1
1
· · · pα
n
n +γn
= pβ1 1 · · · pβnn = b. De aquí se deduce que a | b. 
Como ejemplo de aplicación de este criterio de divisibilidad, deduzcamos el siguiente resultado.
Proposición 4.8. Sean a y b números naturales. Se tiene que a | b si, y sólo si, a2 | b2 .
Demostración. La proposición resulta obvia si b = 0, de modo que supongamos b 6= 0 (y, en ese caso,
tanto a como b son naturales positivos).
Para la ida, supongamos que a | b. Entonces existe c ∈ N tal que b = ac. Luego, b2 = c2 a2 con c2 ∈ N. Por
lo tanto, a2 | b2 .
β1
Para la vuelta, supongamos que a2 | b2 . Sean pα 1 · · · pn y p1 · · · pn las factorizaciones en primos de a y b
1 αn βn

respectivamente, con α1 , . . . , αn , β1 , . . . , βn ∈ N y 0 < p1 < · · · < pn . Entonces, las factorizaciones respectivas


de a2 y b2 son p2α 1
1
· · · p2α
n
n
y b2 = p2β
1
1
· · · p2β n 2 2
n . Ya que a | b , del teorema 4.7, tenemos que para cualquier
i ∈ {1, . . . , n} es 2αi ≤ 2βi , es decir, αi ≤ βi . Luego, nuevamente por el teorema 4.7, se tiene que a | b. 
2.2. M. C. D. y M. C. M. a partir de la factorización. La factorización canónica (con exponentes
pudiendo valer 0) de dos números también permite el cálculo casi inmediato de su máximo común divisor y
mínimo común múltiplo.
Teorema 4.9. Sean a y b dos naturales positivos cuyas factorizaciones en primos sean
a = pα 1 α2 αn
1 p 2 · · · pn , α1 , . . . , αn ∈ N
b = pβ1 1 pβ2 2 · · · pβnn , β1 , . . . , βn ∈ N
con p1 , . . . , pn primos, 0 < p1 < · · · < pn . Se tiene que
mı́n(α1 ,β1 ) mı́n(α2 ,β2 )
mcd (a, b) = p1 p2 · · · pnmı́n(αn ,βn )
y que
máx(α1 ,β1 ) máx(α2 ,β2 )
mcm (a, b) = p1 p2 · · · pnmáx(αn ,βn )
Demostración. Hagamos d = pγ11 pγ22 · · · pγnn con γi = mı́n (αi , βi ) para 1 ≤ i ≤ n. Se tiene que d es un
número positivo, pues es un producto de números naturales. Ya que γi ≤ αi y γi ≤ βi para 1 ≤ i ≤ n, se tiene
que d | a y d | b (teorema 4.7). Sea k cualquier divisor común de a y b. Como los factores primos de k también
lo son de a y de b, debe ser k = pδ11 pδ22 · · · pδnn con δi ∈ N para cada i ∈ {1, . . . , n}. Como k | a y k | b debe ser,
para 1 ≤ i ≤ n, δi ≤ αi y δi ≤ βi , es decir, δi ≤ mı́n (αi , βi ). Entonces, por teorema 4.7, k | d. Ya que d es
un divisor común positivo de a y b divisible por cualquier divisor común de a y b, se sigue que d = mcd (a, b)
(teorema 3.13).
2. ALGUNAS CONSECUENCIAS DEL TEOREMA FUNDAMENTAL 53

Para lo referente a mcm (a, b), observemos que máx (αi , βi ) + mı́n (αi , βi ) = αi + βi , así que máx (αi , βi ) =
αi + βi − mı́n (αi , βi ). Por lo tanto, por teorema 3.37, es
 
β1 β2
ab (pα 1 α2 αn
1 p 2 · · · pn ) p 1 p 2 · · · pn
βn

mcm (a, b) = = mı́n(α ,β ) mı́n(α ,β ) mı́n(αn ,βn )


mcd (a, b) p 1 1
p 2 2
· · · pn
1 2
α1 +β1 −mı́n(α1 ,β1 ) α2 +β2 −mı́n(α2 ,β2 ) n +βn −mı́n(αn ,βn )
= p1 p2 · · · pα
n
máx(α1 ,β1 ) máx(α2 ,β2 )
= p1 p2 · · · pnmáx(αn ,βn )
según queríamos demostrar. 
2.3. Cantidad de divisores. Dado un número natural, ¿cuántos divisores naturales tiene? El 0, infi-
nitos. El 1, uno solo: el propio 1. ¿Y los otros números naturales? El Teorema Fundamental nos da las he-
rramientas apropiadas para saberlo. Dado a > 1, su factorización canónica puede escribirse pα 1 α2
1 p2 · · · pn con
αn
+
p1 < p2 < · · · < pn primos y α1 , . . . , αn ∈ Z . Del teorema 4.7, sabemos que cualquier factor de a tiene la
forma pδ11 pδ22 · · · pδnn con δ1 , . . . , δn ∈ N, δ1 ≤ α1 , . . . , δn ≤ αn . Por lo tanto, para contar la cantidad de di-
visores que tiene a, debemos contar de cuántas maneras distintas podemos seleccionar δ1 , δ2 , . . . , δn de modo
de tener δi ≤ αi para cada i ∈ {1, . . . , n}. Es obvio que para seleccionar δi tenemos αi + 1 posibilidades:
0, 1, . . . , αi . De este modo, por el Principio Fundamental del Conteo, la selección de δ1 , δ2 , . . . , δn puede hacerse
de (α1 + 1) (α2 + 1) · · · (αn + 1) maneras distintas. Hemos demostrado entonces el siguiente resultado.
Proposición 4.10. Sea a = pα 1 α2 αn
1 p2 · · · pn con p1 < p2 < · · · < pn números naturales primos y α1 , α2 , . . .,
+
αn ∈ Z . Entonces, a posee exactamente (α1 + 1) (α2 + 1) · · · (αn + 1) divisores naturales.
Por ejemplo, 24 = 23 · 31 , de modo que 24 posee exactamente (3 + 1) (1 + 1) = 8 divisores naturales (y
efectivamente los divisores de 24 son 1, 2, 3, 4, 6, 8, 12 y 24).
Debe notarse que, aún cuando permitiésemos que algunos exponentes de los primos en la factorización de
a sean 0, la situación no cambia, pues si algún αi vale 0, el correspondiente factor αi + 1 es 1, y no cambia la
cantidad calculada de divisores. Por ejemplo, aún escribiendo 24 = 23 · 31 · 110 · 230 , la cantidad de divisores
naturales de 24 es (3 + 1) (1 + 1) (0 + 1) (0 + 1), es decir, sigue siendo 8.

2.4. Raíces de números primos. Dado un primo p ∈ N, nos preguntamos por la naturaleza de las
raíces cuadradas de p. ¿Serán números naturales? Obviamente que no, pues si fuese a2 = p para algún natural
a, siendo p primo, debe ser a > 1, y entonces a sería un factor propio de p, contradiciendo que p es primo. O
sea que las raíces cuadradas de un primo no pueden ser números naturales. Por un argumento similar, vemos

que n p no puede ser natural si p es primo, cualquiera sea n ≥ 2.

¿Podrá ser n p un número racional? Es decir, ¿existen números racionales cuya n-ésima potencia sea igual
a p? El Teorema Fundamental, a través de la factorización, nos da la pista para averiguarlo.
Sea r un número racional. Como tal, puede expresarse como r = m/q, con m ∈ Z, q ∈ Z+ y, sin pérdida de
αk
generalidad, podemos suponer mcd (m, q) = 1. Supongamos que la factorización canónica de m es pα 1 α2
1 p 2 · · · pk
β
con p1 < p2 < · · · < pk primos y α1 , . . . , αk ∈ Z+ , y que la de q es q1β1 q2β2 · · · qj j con q1 < q2 < · · · < qj primos
+
y β1 , . . . , βj ∈ Z . Del hecho que m y q son coprimos, se sigue que ninguno de los primos que aparece en la
factorización de q aparece en la de m, y viceversa. Es decir, ∀t ∈ {1, . . . , k} , ∀i ∈ {1, . . . , j} , pt 6= qi
Supongamos que r es una raíz n-ésima de p, es decir, r cumple que rn = p. Debe ser entonces mn = pq n , es

decir, pnα 1 p2 · · · pnα
1 nα2
k
k
= pq1nβ1 q2nβ2 · · · qj j . Como a la derecha aparece el primo p (con exponente mayor que
0), por el Teorema Fundamental, debe existir t ∈ {1, . . . , k} tal que pt = p, y por lo tanto la multiplicidad de p
en mn es nαt . Ya que pt 6= qi para 1 ≤ i ≤ j, se sigue que la multiplicidad de p en el número pq n es 1. Entonces,
para tener mn = pq n , debe ser nαt = 1. Esto es imposible si n ≥ 2, pues es αt ≥ 1.
Hemos demostrado, por lo tanto, que la raíz n-ésima de un número primo no puede ser un número racional,
si n ≥ 2. En consecuencia, para n ≥ 2, las raíces n-ésimas reales de un número primo siempre son números
irracionales.

2.5. Raíces de polinomios a coeficientes enteros. Generalizamos ahora la discusión de la sección


previa. Dada la ecuación
(*) xn + an−1 xn−1 + an−2 xn−2 + · · · + a2 x2 + a1 x + a0 = 0
en la variable x, con a0 , a1 , . . . , an−1 ∈ Z y n ≥ 1, ¿qué tipo de soluciones admite? Vamos a demostrar que
todas las soluciones racionales de la ecuación son necesariamente enteras.
Supongamos que r es un número racional que es solución de la ecuación. Entonces podemos suponer que
r = m/q con m ∈ Z, q ∈ Z+ y mcd (m, q) = 1. Reemplazando a r en la ecuación, resulta
mn mn−1 mn−2 m2 m
n
+ an−1 n−1 + an−2 n−2 + · · · + a2 2 + a1 + a0 = 0
q q q q q
54 4. EL TEOREMA FUNDAMENTAL DE LA ARITMÉTICA

Multiplicando a ambos miembros por q n , y despejando, queda


mn = −an−1 qmn−1 − an−2 q 2 mn−2 − · · · − a2 q n−2 m2 − a1 q n−1 m − a0 q n
es decir, 
mn = q −an−1 mn−1 − an−2 qmn−2 − · · · − a2 q n−3 m2 − a1 q n−2 m − a0 q n−1
por lo que q es un factor de mn , y entonces mcd (mn , q) = q. Pero además, ya que q es coprimo con m, se tiene
que mcd (mn , q) = 1 (lo cual puede verse por inducción sobre n, teniendo presente el teorema 3.21). Luego,
deducimos que q = 1, y entonces r = m ∈ Z. Concluimos entonces que las soluciones reales de la ecuación (*)
son o bien enteras, o bien irracionales.
Esto nos da otra justificación para afirmar que las raíces reales de un número primo siempre son irracionales:
ya sabemos que, como soluciones de la ecuación xn = p, son o bien enteras o bien irracionales. Pero también
sabemos que no pueden ser enteras, pues en ese caso p tendría factores propios, en contra de la definición
de número primo. Por lo tanto, las raíces n-ésimas reales de cualquier número primo siempre son números
irracionales.
La ecuación xn + an−1 xn−1 + an−2 xn−2 + · · · + a2 x2 + a1 x + a0 = 0 es un caso particular de la siguiente:
an xn + an−1 xn−1 + an−2 xn−2 + · · · + a2 x2 + a1 x + a0 = 0
con n ≥ 1, a0 , . . . , an ∈ Z, an 6= 0. La generalización consiste en que el coeficiente que acompaña a xn no
es ya necesariamente 1. Procediendo como arriba, buscamos soluciones de la forma m/q con m y q coprimos.
Operando de manera análoga, llegamos a que

an mn = q −an−1 mn−1 − an−2 qmn−2 − · · · − a2 q n−3 m2 − a1 q n−2 m − a0 q n−1
Vemos que q | an mn , y como q es coprimo con mn se sigue que q debe ser un factor de an . Por otro lado,
siendo an = tq para algún entero t, se llega a que
tmn = −an−1 mn−1 − an−2 qmn−2 − · · · − a2 q n−3 m2 − a1 q n−2 m − a0 q n−1
de donde se ve que o bien es m = 0 (únicamente en el caso en que a0 = 0), o bien m es un factor de
−an−1 mn−1 − an−2 qmn−2 − · · · − a2 q n−3 m2 − a1 q n−2 m − a0 q n−1 . Pero de aquí, por aplicación de la proposición
2.27, vemos que m debe dividir a a0 q n−1 . Y como m es coprimo con q n−1 se sigue que m debe dividir a a0 .
Hemos demostrado un conocido criterio para buscar las raíces racionales de un polinomio a coeficientes enteros,
que resumimos a continuación.
Teorema 4.11. Considérese la ecuación
an xn + an−1 xn−1 + an−2 xn−2 + · · · + a2 x2 + a1 x + a0 = 0
con n ≥ 1, a0 , . . . , an ∈ Z, an 6= 0. Los únicos racionales que pueden satisfacerla son el 0 y los de la forma m/q,
con m ∈ Z − {0}, q ∈ Z+ , m factor de a0 y q factor de an .
Debe notarse que el teorema precedente da condiciones necesarias, pero no suficientes, para que un número
racional sea solución de la ecuación. Es decir, sólo proporciona un criterio para obtener racionales candidatos a
solución de la ecuación.
Ejemplo 4.12. Encontrar las raíces racionales de la ecuación 2x3 − 3x + 9 = 0.
En este caso, es n = 3, a3 = 2 y a0 = 9. El 0 no es solución, pues a0 6= 0, así que busquemos soluciones no
nulas. Los factores positivos de a3 son 1 y 2. Los de a0 son 1, −1, 3, −3, 9, −9. Los racionales de la forma m/q
con m factor de a0 y q factor positivo de a3 son
1 1 3 3 9 9
1, −1, 3, −3, 9, −9, , − , , − , , −
2 2 2 2 2 2
y son los únicos racionales que pueden ser solución de la ecuación. Por verificación directa de cada uno de ellos,
se comprueba que ninguno de esos valores la satisface. Concluimos entonces que la ecuación 2x3 − 3x + 9 = 0
no tiene raíces racionales. 

3. Ternas pitagóricas
Consideremos el problema de encontrar x, y, z naturales tales que x2 + y 2 = z 2 . De la sola observación de
la ecuación, encontramos un montón de soluciones: x = a, y = 0, z = a (siendo a cualquier natural) y x = 0,
y = a, z = a (a ∈ N). En todas ellas, al menos un valor es 0, y llamaremos triviales a tales soluciones. Una
solución no trivial es, por ejemplo, x = 15, y = 8, z = 17, y nos interesa encontrar, de manera sistemática, todas
las soluciones no triviales de la ecuación.
Por su relación con el ultrafamoso Teorema de Pitágoras, la ecuación x2 + y 2 = z 2 se denomina ecuación
pitagórica, y se trata de una ecuación diofantina no lineal. Una terna (x, y, z) de números naturales positivos
que cumplen la ecuación se denomina una terna pitagórica, pues existe un triángulo rectángulo cuyos catetos
miden x e y, y cuya hipotenusa mide z. Las ternas pitagóricas son entonces las soluciones no triviales de la
ecuación pitagórica.
3. TERNAS PITAGÓRICAS 55

Algunos ejemplos de ternas pitagóricas: (3, 4, 5), (4, 3, 5), (15, 8, 17), (30, 16, 34). Las dos primeras nos in-
ducen a pensar que x e y pueden intercambiarse, y efectivamente así ocurre: si (x, y, z) es terna pitagórica,
entonces (y, x, z) también lo es. De la observación de los dos últimos ejemplos, surge una primera observación
interesante.
Proposición 4.13. Si (x, y, z) es una terna pitagórica y k es un natural positivo, entonces (kx, ky, kz) es
también una terna pitagórica.
2 2
Demostración. Por ser x, y, z y k todos positivos, también lo son kx, ky y kz. Además, (kx) + (ky) =
2
k x + k 2 y 2 = k 2 x2 + y 2 = k 2 z 2 = (kz) .
2 2

En lo sucesivo, será muy útil conocer la estrecha vinculación que existe entre los divisores de las componentes
de una terna pitagórica.
Proposición 4.14. Sea (x, y, z) una terna pitagórica. Se tiene que
mcd (x, y) = mcd (x, z) = mcd (y, z) = mcd (x, y, z)
Demostración. Designemos por g a mcd (x, y). Como g | x y g | y, se tiene que g 2 | x2 y g 2 | y 2 , y
entonces g 2 | x2 + y 2 . Es decir, g 2 | z 2 . Pero entonces g | z (proposición 4.8). Por lo tanto, mcd (x, y, z) =
mcd (mcd (x, y) , z) = mcd (g, z) = g.
Es obvio que g es un entero positivo que es un divisor común de x y z. Si t | x y t | z, tenemos que t2 | x2 y
t | z 2 , por lo que t2 | z 2 − x2 , es decir, t2 | y 2 , y entonces t | y. Ya que t | x y t | y, tenemos que t | mcd (x, y),
2

vale decir, t es un factor de g. Por el teorema 3.13, es mcd (x, z) = g. De manera enteramente análoga, se deduce
que mcd (y, z) = g. 
Supongamos que (x, y, z) sea una terna pitagórica, con g = mcd (x, y). Hagamos x′ = x/g, y ′ = y/g y
z = z/g. De la proposición anterior y del corolario 3.19, tenemos que x′ , y ′ y z ′ son coprimos de a pares, y

(x′ , y ′ , z ′ ) es una terna pitagórica:


 2  2  2
′ 2 ′ 2 x y x2 + y 2 z 2
(x ) + (y ) = + = = = (z ′ )
g g g2 g
Es decir, por cada terna pitagórica podemos conseguir una terna pitagórica en la que los naturales involu-
crados son coprimos de a pares (que, en virtud de la proposición 4.14, es equivalente a decir que son coprimos).
Tales ternas se denominan ternas pitagóricas primitivas, y, por lo dicho hasta ahora, para estudiar todas
las soluciones en N3 de la ecuación x2 + y 2 = z 2 , alcanza con estudiar las ternas primitivas que son solución de
la ecuación, pues toda terna pitagórica es o bien primitiva o bien de la forma (kx, ky, kz) con k ∈ Z+ y (x, y, z)
terna pitagórica primitiva.
Entonces, tratemos ahora de deducir condiciones necesarias y suficientes para x, y y z de modo que (x, y, z)
sea terna pitagórica primitiva. Vamos primero por la obtención de condiciones necesarias. La más evidente de
todas ellas proviene de la definición misma, y es que x, y y z sean coprimos de a pares. Eso obliga a que x e y
no sean ambos pares. ¿Pueden ser ambos impares?
Lema 4.15. Sea z un número natural. Entonces, el resto de dividir z 2 entre 4 es o bien 0 o bien 1.
Demostración. Por el teorema de la división, existen naturales k y r tales  que z = 2k + r con 0 ≤ r < 2
(es decir, r = 0 o r = 1). Por lo tanto, es z 2 = 4k 2 + 4kr + r2 = 4 k 2 + kr + r2 . Hagamos c = k 2 + kr, y
notemos que, ya que r = 0 o r = 1, es r2 = 0 o r2 = 1. Luego,
 z 2 = 4c + r2 con 0 ≤ r2 < 4, es decir, ésta es la
2 2 2
ecuación de la división entre z y 4; en particular, r z , 4 = r ∈ {0, 1}, como se quería probar. 
Lema 4.16. Si (x, y, z) es una terna pitagórica primitiva, entonces no puede ser que x e y sean ambos
impares.
Demostración. Demostremos la contrarrecíproca. Supongamos que  x = 2k + 1 e y = 2n + 1, con k, n ∈ N.
Se tiene que x2 + y 2 = 4k 2 + 4k + 1 + 4n2 + 4n + 1 = 4 k 2 + k + n2 + n + 2. Haciendo c = k 2 + k + n2 + n ∈ N,
se tiene que x2 + y 2 = 4c + 2, y entonces el resto de dividir x2 + y 2 entre 4 es 2. Luego, por el lema 4.15,
x2 + y 2 no puede ser el cuadrado de un número natural. De allí que x2 + y 2 6= z 2 , y entonces (x, y, z) no es terna
pitagórica. 
Entonces, en cualquier terna pitagórica primitiva (x, y, z), x e y son de paridad opuesta, es decir, uno es
par, y el otro impar. A los fines de las deducciones que siguen, supondremos que x es el impar e y el par (las
ternas en las que x es par e y impar se obtienen por intercambio).
Dado que elevar al cuadrado no altera la paridad de un número, y que la suma de dos números de paridad
opuesta es un impar, será entonces x2 impar, y 2 par y z 2 impar. Por lo tanto, z es impar. Observemos que, dado
que y 2 = z 2 − x2 , se tiene que
 y 2 z−xz+x
=
2 2 2
56 4. EL TEOREMA FUNDAMENTAL DE LA ARITMÉTICA


Nótese que mcd z−x z+x
2 , 2 divide a z−x z+x
2 y a 2 y por tanto a cualquier combinación lineal a coeficientes
enteros de z−x z+x z−x z+x
2 y 2 , en particular a 2 + 2 , que es igual a z. Es decir, mcd
z−x z+x
2 , 2 | z. Análogamente,
z−x z+x z+x z−x z−x z+x
mcd 2 , 2 | x pues x = 2 − 2 . Entonces,  mcd 2 , 2 | mcd (x, z). Como estamos suponiendo que
x y z son coprimos, se tiene que mcd z−x 2 , z+x
2 = 1, es decir, z−x
2 y z+x
2 son coprimos. Pero su producto es
2 z−x
(y/2) , es decir, el cuadrado de un natural, por lo que, por proposición 4.5, debe ser 2 = s y z+x 2 2
2 = r para
2 2
ciertos r y s naturales positivos. Debe ser r > s (pues z + x > z − x). Ya que r y s son coprimos, se tiene que
r y s son coprimos (pues si r y s no fuesen coprimos, tendrían un factor común t ≥ 2, y entonces t2 sería un
factor común de r2 y s2 , por lo que éstos no serían coprimos). Además, r2 + s2 = z, r2 − s2 = x y 2rs = y. Y
ya que z es impar, no pueden ser r y s ambos pares (pues r2 + s2 sería par) ni ambos impares (por la misma
razón). Entonces r y s son de paridad opuesta.
En síntesis, si (x, y, z) es terna pitagórica primitiva con x impar, existen r, s ∈ N tales que r > s > 0,
mcd (r, s) = 1, r y s son de paridad opuesta, x = r2 − s2 , y = 2rs y z = r2 + s2 .
Resulta que la recíproca de esto es también cierta, y tenemos entonces el siguiente resultado.
Teorema 4.17. (Kronecker) (x, y, z) es una terna pitagórica primitiva con x impar si, y sólo si, existen
r, s ∈ N tales que r > s > 0, mcd (r, s) = 1, r y s son de paridad opuesta, x = r2 − s2 , y = 2rs y z = r2 + s2 .
Demostración. La ida ha sido ya demostrada en los párrafos precedentes. Para la vuelta, supongamos
que r y s son naturales que satisfacen:
r > s > 0.
mcd (r, s) = 1.
r y s tienen paridad opuesta
Supongamos además que es x = r2 − s2 , y = 2rs y z = r2 + s2 , y veamos que (x, y, z) resulta una terna
pitagórica primitiva en donde x es impar.
Por un lado,
2 2 2
x2 + y 2 = r2 − s2 + (2rs) = r4 − 2r2 s2 + s4 + 4r2 s2 = r4 + 2r2 s2 + s4 = r2 + s2 = z 2
mostrando que (x, y, z) es una terna pitagórica.
Por otro lado, como r y s son de paridad opuesta, también lo son r2 y s2 , de donde surge que x es impar.
Falta ver que x, y y z son coprimos de a pares. Comencemos viendo que x e y son coprimos, teniendo en cuenta
el corolario 3.9 y el teorema 3.21:
Dado que r y s son coprimos, 1 = mcd (r, s) = mcd (r − s, s) y 1 = mcd (r, s) = mcd (r + s, s). Luego,
mcd ((r − s) (r + s) , s) = 1, es decir, mcd (x, s) = 1.
De manera similar, tenemos que mcd (r, r − s) = mcd (r, −s) = mcd (r, s) = 1 y mcd (r, s + r) = mcd (r, s) =
1, por lo que mcd (r, (r − s) (s + r)) = 1, es decir, mcd (r, x) = 1.
Como x es coprimo con r y con s, es mcd (x, rs) = 1. Y como x es impar, es mcd (x, 2) = 1. Por lo tanto,
mcd (x, 2rs) = 1, es decir, x e y son coprimos.
Finalmente, ya que (x, y, z) es terna pitagórica, por proposición 4.14, se tiene que mcd (x, z) = mcd (y, z) =
mcd (x, y) = 1. Entonces, x, y y z son coprimos de a pares, y, en consecuencia, (x, y, z) es terna pitagórica
primitiva con x impar. 
Capítulo 5

CONGRUENCIAS

En este último capítulo del curso abordaremos el estudio de las congruencias, una poderosa herramienta
en Teoría de Números desarrollada desde el siglo XIX por Gauss, y continuada hasta nuestros días por nu-
merosos investigadores de la Matemática, y también de otras ramas científicas, particularmente Ciencias de la
Computación, para mencionar una. Esto se explica ya que, por ejemplo, las congruencias son fundamentales en
la Criptografía, la ciencia de las comunicaciones en secreto. Las propiedades matemáticas de las congruencias
permiten hacer con un altísimo grado de seguridad la codificación de mensajes (es decir, la transformación de
un texto legible en uno sin sentido aparente) de modo tal que puedan ser decodificados (o sea, recuperados en su
formato legible original a partir del texto aparentemente ininteligible) sólo por quien esté autorizado a hacerlo;
y los fundamentos matemáticos de las congruencias son, entre otros, los que permiten garantizar el alto grado
de confianza que se tiene en que el desciframiento es virtualmente imposible para un intruso (hacker, como le
llamamos hoy).
Pero resulta que no sólo esos investigadores hacen congruencias. Nosotros, los mortales comunes y corrientes,
también las hacemos en muchas situaciones de la vida cotidiana que se presentan con frecuencia y que manejamos
con absoluta naturalidad. El objetivo de este capítulo es ejemplificar situaciones de ese estilo, reconocer que
hay un patrón de comportamiento común en ellas, formularlas desde un punto de vista matemático, y estudiar
propiedades sobre ellas, de manera de contar con una herramienta sistemática para comprenderlas (precisamente
de eso se trata la Matemática...).

1. Congruencia módulo m
Parada en Caseros esquina Alberdi, en su diario paseo céntrico, Liliana mira hacia el Cerro San Bernardo,
contemplando su belleza. Sin desplazarse de su lugar, gira hacia su izquierda un ángulo de 180◦ , lo que le da
la oportunidad de admirar la imponente Precordillera con algo de nieve; acto seguido, decide girar, también
sin desplazarse y hacia la izquierda, otros 90◦ , lo que le permite ver la muchedumbre que colma la Peatonal
Alberdi y, finalmente, continúa girando en el mismo sentido 180◦ más, para quedar apuntando en dirección de
la renovada Galería del Turista con sus vistosos colores. En su recorrido para obtener un panorama completo de
lo que ocurre a su alrededor (para chusmear, diríamos en salteño básico), Liliana ha totalizado un giro de 450◦ .
El San Bernardo ha quedado a su derecha. Piensa entonces, y con justa razón, que, desde el punto de vista de
la dirección a la que queda apuntando, hubiese sido lo mismo haber girado desde su postura inicial (mirando el
cerro) hacia su izquierda un ángulo de 90◦ . Es decir, hay un punto de vista desde el cual 90 representa lo mismo
que 450 (obviamente, desde el punto de vista de los paisajes que pudo apreciar, no son lo mismo; tampoco
son lo mismo desde el punto de vista del mareo que le quedó luego de girar). Pero desde ese punto de vista
(la dirección en que quedó apuntando), 90 y 450 son coincidentes, o, para emplear sinónimos, concordantes o
congruentes. Del mismo modo, el número 810 representa la misma dirección.
En general, como sabemos que una vuelta completa representa 360◦ , girar un ángulo α de más de 360◦ es
lo mismo que girar un ángulo igual al resto de la división de α por 360, pues cada 360◦ constituyen una vuelta
entera, y significan quedar mirando en la dirección original, de modo que la dirección final coincide con el resto
de dividir el ángulo total girado entre 360.
Observemos, en una recta numérica, los valores 90, 450 y 810:

En el dibujo hemos marcado también los números que corresponden a vueltas completas (0, 360, 720, etc.)
y vemos que los números 90, 450 y 810 distan de los correspondientes a la mayor vuelta completa superada una
misma cantidad (90), y es éso precisamente lo que los hace equivalentes (o congruentes) desde el punto de vista
de la dirección final.
Resumamos la situación: suponiendo que se giran ángulos en una cantidad entera de grados, hay 360
posiciones posibles, cada una de las cuales representa una infinidad de posibles giros (números enteros), y la
manera de encontrar con qué posición se corresponde cada número es tomar el resto de la división del número
por 360.
57
58 5. CONGRUENCIAS

Veamos otro ejemplo de la vida cotidiana en el que también sólo interesan los restos de una división: hasta
hace unos años, los cuentakilómetros de los autos tenían cinco rueditas para indicar el kilometraje recorrido.
Recién salido el auto de la fábrica, el cuentakilómetros marcaba 00000; luego de que el auto recorrió 10 km.,
marcaba 00010. A los 99.999 km. marcaba 99999, y a los 100.000 km. marcaba 00000 (¡pero no significaba que
el dueño tenía de nuevo un cero kilómetro!). A los 100.010 km. volvía a marcar 00010, y a los 200.010 km.
también. En general, tal cuentakilómetros no muestra necesariamente el kilometraje real, sino el resto de dividir
el mismo por 100.000. Los números 10 y 200.010 son equivalentes desde el punto de vista del cuentakilómetros
(y seguramente no desde el punto de vista del estado del automóvil). O sea que si alguien ve que el aparato
marca 00010, con esa sola información no puede saber si el auto lleva recorridos 10, 100.010, o 200.010 km. (o
cualquier otro número que sea 10 unidades mayor que un múltiplo de 100.000).
Situaciones de este tipo, en que sólo interesa el resto de una división, ocurren tan a menudo que a veces ni
nos damos cuenta de que estamos en una de ellas, y de que estamos usando matemática para manejarla. Por
ejemplo, si hoy es jueves, y nos preguntamos por el día de la semana que será dentro de 22 días, difícilmente
optemos por contar los días uno a uno (hoy jueves, mañana viernes, pasado sábado...). Más bien, resolvemos la
situación notando que cada 7 días volveremos a estar en jueves, por lo que en 21 días será también jueves, de
modo que en 22 días estaremos en un viernes. Es decir, basta calcular el resto de la división de 22 por 7 (que
será un número entre 0 y 6) y ver qué día de la semana será dentro de esa cantidad de días.
Los matemáticos, conscientes de lo común de la situación, la han generalizado de la siguiente manera.
Definición 5.1. Sea m un número entero positivo. Dos números enteros a y b se dicen congruentes
módulo m si el resto de dividir a por m es el mismo que el de dividir b por m. El número m se llama módulo
de la congruencia.
El hecho de que dos enteros a y b sean congruentes módulo m se denota de varias maneras, según el gusto
de cada autor:
a ≡ b (mod m) a ≡ b (m) a ≡m b
Por razones de comodidad y precisión, nosotros emplearemos la de la derecha (la de la izquierda exige
escribir mucho, y la del medio puede crear alguna confusión con la operación de producto de números). Cuando
dos números a y b no son congruentes módulo m, escribimos a 6≡m b, y diremos que a y b son incongruentes
módulo m. El símbolo de congruencia (≡) tiene un parecido tipográfico con el símbolo standard de la igualdad
(=), y más adelante veremos que el parecido no es sólo en la forma sino en la funcionalidad (bajo varios aspectos
matemáticos, la igualdad y la congruencia se comportan de la misma forma, aunque también veremos ciertas
diferencias). Gauss fue el primero en darse cuenta de ello, y por eso propuso el uso de ≡ para simbolizar a las
congruencias.
Nuestros ejemplos de más arriba nos hacen ver que nuestro sistema de medición de ángulos está gobernado
por la congruencia módulo 360, el cuentakilómetros del auto por la congruencia módulo 100.000, y los días de
la semana en un almanaque por la congruencia módulo 7. Para citar más ejemplos, el reloj es un dispositivo que
obedece a congruencia módulo 24 para las horas del día, y módulo 60 para los minutos y segundos. El almanaque
también responde a la congruencia módulo 12 para los meses del año. Las congruencias están alrededor nuestro
más de lo que imaginamos...
De acuerdo a la definición y a los ejemplos, tenemos que 90 ≡360 450, 90 ≡360 810, 90 6≡360 45, 22 ≡7 1,
10 ≡100.000 100.010, 810 ≡360 −270. ¡Momentito! Esta última nos parece, cuando menos, sospechosa. Sin
embargo, notemos que nuestra definición de congruencia permite que a y b sean enteros, así que al menos tiene
sentido preguntarse si 810 ≡360 −270. Podemos respondernos sin problemas, ya que sabemos dividir números
enteros. Y efectivamente r (810, 360) = 90 = r (−270, 360), así que 810 ≡360 −270. Esto tiene además una
interpretación física en el caso de la Liliana girando por el centro: los números positivos representan giros en
sentido antihorario, y los negativos, giros en sentido contrario. O, en el caso de los días de la semana, los números
positivos representan días hacia el futuro, y los negativos, días hacia el pasado: si hoy es jueves, ¿qué día de la
semana fue hace 22 días? Como −22 ≡7 6, la respuesta es la misma que la de la pregunta “¿Qué día cae dentro
de 6 días?” o también “¿Qué día de la semana fue ayer?” (pues −22 ≡7 −1); la respuesta a las tres preguntas es
“miércoles”.

2. Propiedades generales de las congruencias


A primera vista, puede resultar un poco molesto tener que andar haciendo tantas divisiones por m para
saber si dos números son congruentes módulo m. Afortunadamente, hay una manera equivalente de saberlo,
generalmente más fácil de verificar que ir por la definición, y la enunciamos a continuación.
Proposición 5.2. Sean a y b enteros, y m un entero positivo. Se tiene que
a ≡m b ⇐⇒ m | (a − b)
2. PROPIEDADES GENERALES DE LAS CONGRUENCIAS 59

Demostración. Supongamos primero que a ≡m b. Del Teorema de la División, existen c1 , c2 , r1 , r2 ∈ Z


tales que a = c1 m + r1 y b = c2 m + r2 con 0 ≤ r1 < m y 0 ≤ r2 < m. Restando miembro a miembro las
dos ecuaciones de división, tenemos que a − b = (c1 − c2 ) m + (r1 − r2 ). Pero por ser a ≡m b, tenemos que
r1 = r (a, m) = r (b, m) = r2 , por lo que r1 − r2 = 0, con lo cual a − b = (c1 − c2 ) m, mostrando que m | (a − b).
Recíprocamente, supongamos que m | (a − b). Existe entonces k ∈ Z tal que a−b = km, es decir, a = b+km.
Luego,
r (a, m) = r (b + km, m) = r (r (b, m) + r (km, m) , m) = r (r (b, m) , m) = r (b, m)
de donde se tiene que a ≡m b. 
Con este criterio, es fácil ver que 810 ≡360 −270, ya que 810 − (−270) = 1.080 = 3 · 360, es decir, 360 es un
factor de 810 − (−270).
La proposición de arriba puede expresarse fácilmente en castellano: dos números son congruentes módulo
m si, y sólo si, su diferencia es un múltiplo de m (o, lo que es lo mismo, a es congruente módulo m con b si,
y sólo si, a es igual a b más un múltiplo de m). En virtud de la equivalencia con la definición, muchos autores
adoptan directamente como definición de congruencia módulo m el hecho de que la diferencia sea múltiplo de
m, y están en su pleno derecho de hacerlo. Sin embargo, aquí hemos preferido la definición a través de los restos,
por considerar que tiene un mayor grado de significación.
Veamos a continuación algunas propiedades básicas de las congruencias. Las tres primeras establecen que
la congruencia módulo m es una relación reflexiva, simétrica y transitiva en el conjunto de los números enteros.
Proposición 5.3. ∀a ∈ Z, a ≡m a.
Demostración. Para cualquier a ∈ Z, r (a, m) = r (a, m), por lo que a ≡m a. 
Proposición 5.4. ∀a, b ∈ Z, a ≡m b ⇔ b ≡m a.
Demostración. a ≡m b ⇔ r (a, m) = r (b, m) ⇔ r (b, m) = r (a, m) ⇔ b ≡m a. 
Proposición 5.5. ∀a, b, c ∈ Z, (a ≡m b ∧ b ≡m c) ⇒ a ≡m c.
Demostración. (a ≡m b ∧ b ≡m c) ⇒ (r (a, m) = r (b, m) ∧ r (b, m) = r (c, m)) ⇒ r (a, m) = r (c, m) ⇒
a ≡m c. 
Proposición 5.6. Sean a, b ∈ Z y m ∈ Z+ . Supongamos que k es un entero positivo que es factor de m, y
que a ≡m b. Entonces, también se tiene que a ≡k b.
Demostración. Si a ≡m b, entonces m | (a − b). Si k | m, por transitividad de la relación de divisibilidad,
tenemos que k | (a − b), de donde a ≡k b. 
Proposición 5.7. Sean a, b ∈ Z y m, k ∈ Z+ . Se tiene que a ≡m b ⇔ ka ≡km kb.
Demostración. a ≡m b ⇔ m | (a − b) ⇔ km | k (a − b) ⇔ km | (ka − kb) ⇔ ka ≡km kb. 
Dado cualquier m ∈ Z+ , por la definición de congruencia resulta obvio que si dos números son iguales,
entonces son congruentes módulo m (es lo que dice la proposición 5.3). La recíproca no es cierta en general,
pero sí en una circunstancia especial, según veremos a continuación.
Proposición 5.8. Sea m ∈ Z+ , y sean a, b ∈ Z tales que 0 ≤ a < m y 0 ≤ b < m. Se tiene que
a ≡m b ⇔ a = b.
Demostración. Siendo a y b naturales menores que m, es r (a, m) = a y r (b, m) = b (proposición 2.17).
De allí que si a ≡m b, entonces r (a, m) = r (b, m), y luego a = b. La implicación recíproca es directa de ver. 
La siguiente propiedad, vinculada al resultado que acabamos de ver, nos dice cuál es el más pequeño de los
naturales que es congruente módulo m con un entero a dado.
Proposición 5.9. Sean m ∈ Z+ y a ∈ Z. Entonces, r(a, m) es el único entero entre 0 y m − 1 que es
congruente a a módulo m.

Demostración. Por la proposición 2.17, r(a, m) = r r(a, m), m , por lo que a ≡m r(a, m). Para ver la
unicidad, supongamos que a ≡m n para 0 ≤ n ≤ m − 1. Por la proposición 5.5, tenemos entonces que n ≡m r,
y siendo ambos naturales menores que m, resulta n = r (proposición 5.8). 
En relación a la proposición anterior, muchos autores utilizan la expresión “x (mod m)” para hacer referencia
al resto de la división de x por m. Algunos lenguajes de programación usan la función mod (x, m) para designar
a tal resto.
Definición 5.10. Un sistema completo de restos módulo m es un conjunto de enteros tal que cualquier
entero es congruente módulo m a exactamente un elemento del conjunto.
60 5. CONGRUENCIAS

De la proposición 5.9, deducimos que, dado m ∈ Z+ , el conjunto {0, 1, . . . , m − 1} es un sistema completo


de restos módulo m. Otros ejemplos:
1. El conjunto {1, . . . , m − 1, m}.
2. El conjunto {0, m + 1, 2m + 2, . . . , (m − 1) m + (m − 1)}
Y hay muchos más (de hecho, son infinitos). Todos ellos se caracterizan de acuerdo al siguiente resultado.
Proposición 5.11. Sea M un subconjunto de números enteros. Se tiene que M es un sistema completo de
restos módulo m si, y sólo si, M tiene exactamente m elementos que son dos a dos incongruentes módulo m.
Demostración. Supongamos que M es un sistema completo de restos módulo m. Sean a y b elementos
de M , con a 6= b. Como a ≡m a (proposición 5.3), debe ser b 6≡m a (pues, de lo contrario, el entero a sería
congruente módulo m a dos elementos de M ).
Si M tuviese más de m elementos, al menos dos de ellos tienen el mismo resto cuando se los divide por m
(pues sólo hay m posibles restos de una división por m), y esos elementos serían congruentes módulo m, lo cual
no puede ser, por nuestro resultado anterior. Si M tuviese menos que m elementos, por la unicidad del resto
de la división, debería haber un x ∈ {0, . . . , m − 1} tal que ∀a ∈ M, r (a, m) 6= x. Luego, ningún número de M
sería congruente a x módulo m, contradiciendo el hecho de que M es un sistema completo de restos módulo m.
Luego, M posee exactamente m elementos.
Para la vuelta, supongamos que M es un subconjunto de enteros que tiene exactamente m elementos que
son dos a dos incongruentes módulo m. Esto quiere decir que, cuando se divide cada elemento de M por m, se
obtienen todos los restos posibles, es decir, todos los números entre 0 y m − 1. Sea a ∈ Z. De la proposición 5.9,
es a ≡m r (a, m). Y por lo que dijimos, existe un único x ∈ M tal que x ≡m r (a, m). Luego, a ≡m x para un
único x ∈ M . De allí que M es un sistema completo de restos módulo m. 
Ejemplos de conjuntos que no son sistemas completos de restos módulo m:
1. El conjunto {1, . . . , m − 1}, porque tiene m − 1 elementos (obsérvese además que los múltiplos de m no
son congruentes módulo m a ningún elemento del conjunto).
2. El conjunto {0, 1, . . . , m − 1, m}, porque tiene m + 1 elementos (notar que los múltiplos de m son
congruentes a más de un elemento del conjunto, a saber, a 0 y a m).

2.1. Congruencias y operaciones aritméticas. Veremos ahora el comportamiento de las congruencias


frente a distintas operaciones aritméticas. El primer resultado nos dice que se puede sumar, en ambos miembros
de una congruencia, un mismo número, y la congruencia se sigue manteniendo, y que lo mismo vale para el
producto.
Lema 5.12. Sean a, b, c ∈ Z y m ∈ Z+ . Si a ≡m b, entonces a + c ≡m b + c y ac ≡m bc.
Demostración. Por ser a ≡m b, tenemos que existe k ∈ Z tal que a − b = km (proposición 5.2). Por lo
tanto, (a + c) − (b + c) = km y ac − bc = (kc) m. De aquí que, de nuevo por la proposición 5.2, es a + c ≡m b + c
y ac ≡m bc. 
Ahora veamos que las congruencias módulo un mismo número pueden sumarse miembro a miembro, o
multiplicarse miembro a miembro, sin alterar la congruencia. Lo haremos para el caso de dos congruencias, y
una simple inducción permite extender el resultado al caso en que se tienen varias congruencias (recalquemos
que todas deben ser módulo un mismo número).
Teorema 5.13. Sean a, b, c, d ∈ Z y m ∈ Z+ . Si a ≡m b y c ≡m d, entonces a + c ≡m b + d y ac ≡m bd.
Demostración. Por ser a ≡m b y c ≡m d, tenemos que a + c ≡m b + c y que b + c ≡m b + d (lema 5.12),
y entonces, por la proposición 5.5, tenemos que a + c ≡m b + d. También del lema 5.12 es ac ≡m bc y bc ≡m bd,
de donde ac ≡m bd. 

Corolario 5.14. Sean a, b ∈ Z y m ∈ Z+ . Si a ≡m b, entonces ∀n ∈ Z+ , an ≡m bn .


Demostración. Por inducción sobre n. El caso n = 1 sale directamente de la hipótesis, así que veamos
el paso inductivo. Supongamos que an ≡m bn . Como por hipótesis es a ≡m b, del teorema 5.13 tenemos que
an a ≡m bn b, es decir, an+1 ≡m bn+1 . 
Corolario 5.15. Sean a, b, c0 , c1 , c2 , . . . , ck ∈ Z y m ∈ Z+ . Si a ≡m b, entonces c0 + c1 a + c2 a2 + · · · +
c k a ≡ m c 0 + c 1 b + c 2 b2 + · · · + c k bk .
k

Demostración. Por inducción sobre k (la cantidad de sumandos). Para k = 0, debemos probar que
c0 ≡m c0 , lo cual es cierto por la proposición 5.3. Ahora supongamos que c0 +c1 a+c2 a2 +· · ·+ck ak ≡m c0 +c1 b+
c2 b2 +· · ·+ck bk . Ya que a ≡m b, del lema 5.12 y el corolario 5.14, tenemos que ck+1 ak+1 ≡m ck+1 bk+1 , así que, por
el teorema 5.13, concluimos que c0 +c1 a+c2 a2 +· · ·+ck ak +ck+1 ak+1 ≡m c0 +c1 b+c2 b2 +· · ·+ck bk +ck+1 bk+1 . 
2. PROPIEDADES GENERALES DE LAS CONGRUENCIAS 61

Los resultados anteriores nos muestran que el parecido entre ≡ y = no es sólo tipográfico, sino también fun-
cional: tanto las igualdades como las congruencias se preservan por suma o multiplicación de ambos miembros
por un mismo número, suma o multiplicación miembro a miembro, o elevación miembro a miembro a cual-
quier potencia entera positiva. Incluso hemos visto indirectamente que, en una congruencia, podemos cancelar
términos, así como podíamos hacerlo en las igualdades: a + c ≡m b + c ⇒ a + c + (−c) ≡m b + c + (−c) ⇒ a ≡m b.
Sin embargo, hay algo que siempre podemos hacer en una igualdad, pero no siempre en una congruencia:
cancelar factores no nulos. Por ejemplo, 4 · 5 ≡6 4 · 2 (pues 20 − 8 es múltiplo de 6), pero si cancelamos el factor
4 nos quedaría 5 ≡6 2, que evidentemente es falso ya que 5 − 2 no es múltiplo de 6. La división de congruencias
miembro a miembro adolece del mismo tipo de dificultades: 8 ≡4 12 y 2 ≡4 6 pero (8/2) 6≡4 (12/6) pues 4 6≡4 2.
¿Qué es lo que está pasando como para impedirnos la ley cancelativa en el producto? Veamos. Supongamos
que ka ≡m kb. Luego, m | k (a − b). Si quisiéramos probar que a ≡m b, deberíamos ver que m | a − b. Si k y
m no son coprimos (que es lo que pasaba en nuestro ejemplo de más arriba), la divisibilidad de k (a − b) por
m puede ser debida a la presencia del factor k, y no necesariamente deduciríamos que m | (a − b), con lo cual
la conclusión de que a ≡m b podría ser errónea. Lo que sí podemos asegurar es el siguiente resultado, que nos
dice que en la congruencia ka ≡m kb siempre podemos cancelar el factor k, a condición de que pasemos de una
m
congruencia módulo m a una congruencia módulo mcd(k,m) .

Proposición 5.16. Sean k, a, b ∈ Z y m ∈ Z+ . Hagamos d = mcd (k, m). Si ka ≡m kb, entonces a ≡ md b.


Demostración. Supongamos que ka ≡m kb. Existe t ∈ Z tal que k (a − b) = mt. Por lo tanto, kd (a − b) =
m k m m
d t. Ya que d y d son coprimos (corolario 3.19), se sigue que d | (a − b) (teorema 3.20), y entonces a ≡ d b. 
m

Corolario 5.17. Sean k, a, b ∈ Z y m ∈ Z+ . Si ka ≡m kb y además k y m son coprimos, entonces a ≡m b.


¿Podemos combinar, de alguna manera, congruencias entre dos números si las congruencias tienen diferentes
módulos? Es decir, suponiendo que a ≡m1 b y que a ≡m2 b, ¿podemos deducir, en base a ésto, una única
congruencia que relacione a a, b, m1 y m2 ?
Teorema 5.18. Sean a, b ∈ Z y m1 , m2 ∈ Z+ . Se tiene que (a ≡m1 b ∧ a ≡m2 b) ⇔ a ≡mcm(m1 ,m2 ) b.
Demostración. Primero supongamos a ≡m1 b y a ≡m2 b. Entonces tenemos que m1 | (a − b) y m2 |
(a − b), es decir, a−b es un múltiplo común de m1 y m2 . Luego, por el teorema 3.34, deducimos que mcm (m1 , m2 )
es factor de a − b, lo que implica que a ≡mcm(m1 ,m2 ) b.
Para la implicación recíproca, ya que m1 y m2 son factores de mcm (m1 , m2 ), de la proposición 5.6 deducimos
que si a ≡mcm(m1 ,m2 ) b, entonces a ≡m1 b y a ≡m2 b. 
Corolario 5.19. Para k ≥ 2, sean a, b ∈ Z y m1 , m2 , . . . , mk ∈ Z+ tales que m1 , m2 , . . . , mk son dos a
dos coprimos. Se tiene que (a ≡m1 b ∧ a ≡m2 b ∧ . . . ∧ a ≡mk b) ⇔ a ≡m1 m2 ···mk b.
Demostración. Por inducción sobre k. El caso k = 2 sale del teorema 5.18, con la consideración de que
si m1 es coprimo con m2 , entonces mcm (m1 , m2 ) = m1 m2 (lema 3.36). Supongamos el enunciado válido para
k, es decir, (a ≡m1 b ∧ a ≡m2 b ∧ . . . ∧ a ≡mk b) ⇔ a ≡m1 m2 ···mk b toda vez que m1 , m2 , . . . , mk son dos a dos
coprimos. Tomemos m1 , m2 , . . . , mk , mk+1 dos a dos coprimos. Tenemos que m1 , m2 , . . . , mk son dos a dos
coprimos y que mk+1 es coprimo con m1 m2 · · · mk , por lo que mcm (m1 m2 · · · mk , mk+1 ) = m1 m2 · · · mk mk+1 .
De allí que, por el teorema 5.18 y la hipótesis inductiva, se tiene que

a ≡m1 m2 ···mk mk+1 b ⇔ a ≡mcm(m1 m2 ···mk ,mk+1 ) b ⇔ a ≡m1 m2 ···mk b ∧ a ≡mk+1 b

⇔ a ≡m1 b ∧ a ≡m2 b ∧ . . . ∧ a ≡mk b ∧ a ≡mk+1 b
según se deseaba demostrar. 
2.2. Aplicación a la deducción de criterios de divisibilidad. Veremos ahora cómo las congruencias
nos permiten demostrar, de manera alternativa a la empleada en el capítulo 2, la validez de ciertos criterios
de divisibilidad conocidos, y la deducción de otros. Para ello, nos basaremos fuertemente en el corolario 5.15,
que, en definitiva, asevera que si f (x) es una función polinómica a coeficientes enteros y a ≡m b, entonces
f (a) ≡m f (b).
En lo que sigue, N representará un número natural de k + 1 dígitos, siendo éstos, de derecha a izquierda,
Pk
a0 , a1 , . . ., ak , de modo que N = j=0 aj 10j . Podemos incluso suponer que hay dígitos 0 a la izquierda, de
modo que no necesariamente es ak 6= 0, pero esto no cambiará en nada nuestro análisis.
2.2.1. Divisibilidad por 3 y por 9. Supongamos que queremos saber si N es o no múltiplo de 3. Definamos,
Pk
para eso, el polinomio a coeficientes enteros f (x) = j=0 aj xj . Claramente, tenemos que f (10) = N . Además,
f (1) = a0 + a1 + · · · + ak , es decir, f (1) es la suma de los dígitos de N . Como 10 ≡3 1, del corolario 5.15 tenemos
que f (10) ≡3 f (1), es decir, N ≡3 a0 + a1 + · · · + ak . Así que el resto de dividir N por 3 es el mismo que el de
dividir a0 + a1 + · · · + ak por 3. Esto nos dice entonces que N es divisible por 3 si, y sólo si, a0 + a1 + · · · + ak
es un múltiplo de 3.
62 5. CONGRUENCIAS

Notando que además es 10 ≡9 1, deducimos también que N ≡9 a0 + a1 + · · · + ak , por lo que el resto de


dividir N por 9 es el mismo que el de dividir a0 + a1 + · · · + ak por 9. De allí que N es divisible por 9 si, y sólo
si, a0 + a1 + · · · + ak es un múltiplo de 9.
2.2.2. Divisibilidad por 11. Observando que 10 ≡11 −1, nos damos cuenta de que podemos usar de nuevo
Pk k
el polinomio f (x) = j=0 aj xj del siguiente modo: ya que f (−1) = a0 −a1 +a2 −· · ·+(−1) ak , por el corolario
k
5.15 resulta que N ≡11 a0 − a1 + a2 − · · · + (−1) ak . Luego, N es divisible por 11 si, y sólo si, la suma de los
dígitos de N , pero con signos alternados (empezando con + el de la derecha), es múltiplo de 11. Por ejemplo,
71,328,459 no es múltiplo de 11 pues 9 − 5 + 4 − 8 + 2 − 3 + 1 − 7 = −7 no es múltiplo de 11. El número 70.411
es múltiplo de 11, ya que 1 − 1 + 4 − 0 + 7 da 11, que es múltiplo de 11.
2.2.3. Divisibilidad por 7. Si tratamos de seguir el mismo camino que en los casos anteriores para encontrar
Pk
un criterio de divisibilidad por 7 a través del polinomio f (x) = j=0 aj xj , podemos comenzar planteando que
10 ≡7 3, de modo que N es divisible por 7 si, y sólo si, f (3) es múltiplo de 7. Rápidamente nos damos cuenta de
que esto no nos lleva por buen camino, pues la evaluación de f (3) puede ser más tediosa que realizar directamente
la división de N por 7. Cambiemos entonces de estrategia. En vez de plantear congruencias módulo 7, hagamos
congruencias módulo un múltiplo adecuado de 7. Un múltiplo adecuado es 7 · 11 · 13 = 1.001. ¿Qué tiene de
adecuado? Que 103 ≡1.001 −1, siendo −1 un número en el cual es relativamente fácil evaluar polinomios a
coeficientes enteros, y 103 una potencia de 10, lo cual será útil para acomodar la expresión de N a partir de sus
dígitos de la siguiente manera:
N = a0 + 10a1 + 102 a2 + 103 a3 + 104 a4 + 105 a5 + 106 a6 + 107 a7 + 108 a8 + · · ·
= (100a2 + 10a1 + a0 ) + (100a5 + 10a4 + a3 ) 103 + (100a8 + 10a7 + a6 ) 106 + · · ·
Hagamos entonces g (x) = (100a2 + 10a1 + a0 ) + (100a5 + 10a4 + a3 ) x + (100a8 + 10a7 + a6 ) x2 + · · · , que
es un polinomio a coeficientes enteros. Obviamente, es N = g 103 , y, por otro lado,
g (−1) = (100a2 + 10a1 + a0 ) − (100a5 + 10a4 + a3 ) + (100a8 + 10a7 + a6 ) − · · ·
3
Siendo 10 ≡1.001 −1, deducimos que
N ≡1.001 (100a2 + 10a1 + a0 ) − (100a5 + 10a4 + a3 ) + (100a8 + 10a7 + a6 ) − · · ·
Llamemos M = (100a2 + 10a1 + a0 )−(100a5 + 10a4 + a3 )+(100a8 + 10a7 + a6 )−· · · . ¿Qué representa esta
expresión? Es lo que queda de separar la expresión decimal de N en bloques de a tres dígitos (empezando por la
derecha, y pudiendo quedar el bloque de más a la izquierda con menos de tres dígitos), considerar cada bloque
como un número individual, y sumar los números correspondientes a cada bloque, con términos alternados (el
de la derecha comienza con signo +), según el siguiente esquema:
+ N3 − N2 + N1
z }| { z }| { z }| {
· · · . a8 a7 a6 . a5 a4 a3 . a2 a1 a0
Ahora bien, dado que 1.001 = 7 · 11 · 13 y que 7, 11 y 13 son dos a dos coprimos, del corolario 5.19 tenemos
que N ≡7 M , N ≡11 M y N ≡13 M , pues ya hemos deducido que N ≡1.001 M . Luego, N es divisible por 7 si,
y sólo si, M es múltiplo de 7. De pasada, hemos encontrado otro criterio para divisibilidad por 11 (que M sea
múltiplo de 11) y uno para divisibilidad por 13 (que M sea múltiplo de 13).
Ejemplo 5.20. Analicemos si los números 55.233.367 y 1.128.338.783 son múltiplos de 7, 11 o 13.
Descomponiendo al primero en bloques de a tres, nos quedan los números 55, 233 y 367. Sumándolos con
signos alternados resulta 367 − 233 + 55 = 189 = 33 · 7, que es múltiplo de 7 pero no de 11 ni de 13. Entonces,
55.233.367 es múltiplo de 7 pero no de 11 ni de 13.
Para el segundo, la descomposición en bloques de a tres arroja los números 1, 128, 338 y 783. Sumándolos
con términos alternados resulta 783 − 338 + 128 − 1 = 572 = 22 · 11 · 13. Se ve entonces que 1.128.338.783 es
múltiplo de 11 y de 13, aunque no de 7. 
2.2.4. Divisibilidad por potencias de 2. Sean i y j enteros positivos, con j ≥ i. Dado que 10 = 5 · 2, se tiene
que 10j = 5j 2j , por lo que, siendo i ≤ j, resulta que 2i | 10j (teorema 4.7). Por lo tanto, 10j ≡2i 0, cualesquiera
sean los enteros positivos j ≥ i.
Supongamos que queremos saber si N es divisible por alguna potencia de 2, digamos por 2i , con i ≥ 1.
Podemos suponer que N tiene al menos i dígitos (pues completamos con ceros a la izquierda, si hace falta), es
Pk Pi−1 Pk
decir, podemos suponer que k ≥ i − 1. Entonces, N = j=0 aj 10j = j=0 aj 10j + j=i aj 10j . Por nuestro
análisis de más arriba, cada término de la segunda sumatoria es congruente módulo 2i con 0, de modo que, 
Pk Pi−1
por el teorema 5.13, se tiene que j=i aj 10j ≡2i 0, y, por lo tanto, N ≡2i j=0 aj 10 . Es decir, r N, 2
j i
=
P 
i−1
j=0 aj 10 , 2 . En otras palabras, N es divisible por 2 si, y sólo si, los i dígitos de la derecha en la
j i i
r
expresión decimal de N representan un número divisible por 2i . Los casos i = 1, i = 2 e i = 3 corresponden,
respectivamente, a los conocidos criterios de divisibilidad por 2, por 4 y por 8 (por ejemplo, para divisibilidad
por 8 basta verificar si las tres últimas cifras de N representan un número divisible por 8).
3. ECUACIONES DE CONGRUENCIA 63

Ejemplo 5.21. Encontrar la máxima potencia de 2 que es factor de 156.194.848.


De acuerdo a nuestro criterio, comenzando con i = 1, vamos considerando las i cifras de la derecha del
número dado, y vemos si el número t que representan es múltiplo de 2i . Lo resumimos en la siguiente tabla:

i 2i t r t, 2i
1 2 8 0
2 4 48 0
3 8 848 0
4 16 4.848 0
5 32 94.848 0
6 64 194.848 32
Por lo tanto, 32 es la máxima potencia de 2 por la que es divisible el número 156.194.848. 

3. Ecuaciones de congruencia
Supongamos que f (x) y g (x) son funciones enteras en la variable entera x, y que m ∈ Z+ . Por ejemplo,
f (x) = 2x5 − 3x2 , g (x) = x + 1, y m = 7. Tiene sentido interpretar a x como incógnita, y preguntarse cuáles
son todos los enteros x tales que f (x) ≡m g (x). Tales ecuaciones se denominan ecuaciones de congruencia en
la variable x. Veremos a continuación un tipo básico de ecuaciones de congruencia.
3.1. Ecuación lineal de congruencia en una variable. Son las de la forma ax ≡m b, con a, b ∈ Z y
m ∈ Z+ , y donde x es incógnita entera. Por la proposición 5.2, se tiene que ax ≡m b si, y sólo si, existe y ∈ Z
tal que b − ax = my. Hemos caído entonces en la resolución de la ecuación lineal diofantina ax + my = b, en
las variables x e y. Del teorema 3.38, sabemos que tiene solución si, y sólo si, b es múltiplo de mcd (a, m). Por
lo tanto, la ecuación ax ≡m b tiene solución si, y sólo si, b es múltiplo de mcd (a, m).
Notemos que, en caso de existir c ∈ Z tal que b = c · mcd (a, m), para resolver la ecuación diofantina
sin apelar al tanteo, primero debemos encontrar s, t ∈ Z tales que sa + tm = mcd (a, m). Luego multiplicamos
miembro a miembro por c, quedando (sc) a+ m (tc) = b, es decir, (sc) a− b = m (tc), y entonces (sc) a ≡m b; vale
decir, una solución a la congruencia es x0 = sc. Las soluciones de la ecuación de congruencia son exactamente
las primeras componentes de los pares (x, y) que son solución de la ecuación diofantina. Entonces, por aplicación
del teorema 3.39, tenemos que el conjunto solución de ax ≡m b es el conjunto
 
m
x0 + n :n∈Z
mcd (a, m)
Si una ecuación lineal de congruencia tiene solución x0 , la solución no negativa más pequeña que tiene la
congruencia es r (x0 , m), pues siendo x0 ≡m r (x0 , m) (proposición 5.9), tenemos que b ≡m ax0 ≡m ar (x0 , m)
(lema 5.12).
Resumamos todo en el siguiente resultado.
Teorema 5.22. Sean a, b ∈ Z, y m ∈ Z+ . La ecuación lineal de congruencia ax ≡m b tiene solución si,
y sólo si, b es múltiplo de mcd (a, m). Si tiene solución x0 , tiene infinitas soluciones, que son los números
congruentes a x0 módulo m/mcd (a, m), y al menos una de ellas es un entero entre 0 y m − 1.
Ejemplo 5.23. Encontrar el conjunto solución de 5x ≡10 7.
Tenemos que a = 5, b = 7, m = 10. Resulta mcd (a, m) = 5, que no es factor de b. Luego, la ecuación lineal
de congruencia no tiene solución. 
Ejemplo 5.24. Encontrar el conjunto solución de 6x ≡9 21.
Ahora es a = 6, b = 21, m = 9, con mcd (a, m) = 3, que es factor de b. Por lo tanto, buscamos una solución
cualquiera a la congruencia. El tanteo nos permite inmediatamente ver que x0 = 5 es solución, pues 6 · 5 − 21 es
múltiplo de 9. Entonces, las soluciones de la congruencia son todos los enteros de la forma 5 + 3n, con n ∈ Z.
Esos números son . . . , −4, −1, 2, 5, 8, 11, 14, 17, . . . Algunas soluciones son entre sí congruentes módulo 9, y otras
no. Por ejemplo, −4 ≡9 5, 8 ≡9 17, 2 6≡9 5 6≡9 8. En particular, vemos que hay exactamente tres soluciones en el
rango 0, . . . , m − 1. 
Ejemplo 5.25. Encontrar el conjunto solución de 127x ≡250 6.
Tenemos a = 127, b = 6, m = 250. Ya que 6 es múltiplo de mcd (127, 250) = 1, la congruencia tiene
solución. El tanteo resulta difícil, así que calculemos usando el algoritmo extendido de Euclides, invocando
euclext (127, 250). Obviando detalles, el resultado de la invocación es (63, −32, 1). En particular, s = 63. Como
b/mcd (a, m) = 6, una solución a la congruencia es r (6 · 63, 250) = 128. Entonces, las soluciones de la congruencia
son los enteros de la forma 128 + 250n para n ∈ Z, es decir, . . . , −122, 128, 378, 628, . . . Veamos que, en este
caso, dos soluciones cualesquiera son congruentes módulo 250: si x1 y x2 son soluciones, deben existir enteros n1
y n2 tales que x1 = 128 + 250n1 y x2 = 128 + 250n2 , de donde x1 − x2 = 250 (n1 − n2 ); ya que 250 | (x1 − x2 )
se tiene que x1 ≡250 x2 . 
64 5. CONGRUENCIAS

Dada una ecuación lineal de congruencia ax ≡m b que tiene infinitas soluciones, ¿cuáles de ellas son in-
congruentes entre sí, módulo m? De nuestros dos últimos ejemplos, vemos que, para algunas ecuaciones, todas
las soluciones son congruentes módulo m, y para otras hay soluciones que no son congruentes módulo m. Los
siguientes resultados clarifican el interrogante.
Lema 5.26. Sean a, b, x0 , n1 , n2 ∈ Z, y m ∈ Z+ . Llamemos x1 = x0 + n1 · m/mcd (a, m) y x2 = x0 + n2 ·
m/mcd (a, m). Se tiene que x1 ≡m x2 si, y sólo si, n1 ≡mcd(a,m) n2 .
Demostración. Establezcamos d = mcd (a, m). Si x1 ≡m x2 , existe k ∈ Z tal que (x0 + n1 · m/d) −
(x0 + n2 · m/d) = km. Cancelando, se tiene que n1 /d − n2 /d = k, es decir, n1 − n2 = kd, lo que muestra
que n1 ≡d n2 . Recíprocamente, si n1 ≡d n2 , de la proposición 5.7, tenemos que m m
d n1 ≡d d d n2 , y de allí
m
m m
x0 + d n1 ≡m x0 + d n2 , es decir, x1 ≡m x2 . 
Teorema 5.27. Supongamos que la ecuación ax ≡m b admite solución x0 . Entonces, los elementos del
conjunto I = {x0 + n · m/mcd (a, m) : 0 ≤ n < mcd (a, m)} son soluciones de la ecuación que son dos a dos
incongruentes módulo m. Además, cualquier solución de la ecuación es congruente módulo m a algún elemento
de I.
Demostración. Hagamos d = mcd (a, m). Eligiendo n1 , n2 ∈ {0, . . . , d − 1} con n1 6= n2 , se tiene que
n1 6≡d n2 (proposición 5.8), de modo que (x0 + n1 · m/d) y (x0 + n2 · m/d) pertenecen a I, son soluciones de la
congruencia (teorema 5.22), y son incongruentes módulo m (lema 5.26).
Si x′ es cualquier solución de la congruencia, debe ser x′ = x0 + n′ m/d, para algún n′ ∈ Z. Tomemos
n = r (n′ , d), y hagamos x = x0 + n · m/d. Tenemos que 0 ≤ n < d, y entonces x ∈ I. Como n′ ≡d n, del lema
5.26 se tiene que x′ ≡m x. 
3.2. Congruencias simultáneas, y el Teorema Chino del Resto. Hace muchos, pero muchos años,
los chinos se divertían con acertijos del estilo “Encontrar un número tal que cuando se lo divide por 14 produce
resto 9, cuando se lo divide por 15 produce resto 1, y cuando se lo divide por 17 produce resto 12” (y bueno...
no habían sido inventados todavía los Power Rangers ni Internet; ¡y tal vez por eso mismo ahora los chinos son
tantos!). Este acertijo puede representar una situación real: “Tengo una cierta cantidad de caramelos de modo
que cuando los distribuyo entre 14 personas sobran 9, si los reparto entre 15 sobra 1, y si los distribuyo entre 17
personas, sobran 12 caramelos; ¿cuántos caramelos tengo entonces? ” En nuestro lenguaje de las congruencias,
tal acertijo se enuncia así: encontrar un número x tal que, simultáneamente, x ≡14 9, x ≡15 1, y x ≡17 12.
Estamos en presencia de un sistema de congruencias simultáneas, que son aquellos formados por congruencias
de la forma x ≡m1 a1 , x ≡m2 a2 , . . ., x ≡mk ak en las que hay una incógnita x, y los módulos de las distintas
congruencias son diferentes. Se pretende entonces encontrar todos los valores enteros de x que satisfacen todas
las congruencias simultáneamente.
¿Hay siempre solución para un sistema de congruencias simultáneas?
Ejemplo 5.28. Encontrar x tal que simultáneamente satisfaga x ≡2 0 y x ≡4 1.
Por la proposición 5.2, un entero que satisface la primera de las congruencias debe ser un número par.
Para satisfacer la segunda, debe ser x = 1 + 4n para algún n ∈ Z, y entonces debe ser x impar. Queda claro
entonces que ningún entero satisface al mismo tiempo las dos congruencias, por lo que no hay solución para las
congruencias simultáneas. 
Ejemplo 5.29. Encontrar x tal que simultáneamente satisfaga x ≡4 3 y x ≡7 1.
Para que la primera congruencia sea cierta, debe ser x − 3 un múltiplo de 4, es decir, x = 3 + 4n para n ∈ Z.
Por eso, los enteros que satisfacen la primera congruencia son los del conjunto
{. . . − 41, −37, −33, −29, −25, −21, −17, −13, −9, −5, −1, 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, . . .}
Análogamente, el conjunto solución de la segunda congruencia es
{. . . − 48, −41, −34, −27, −20, −13, −6, 1, 8, 15, 22, 29, 36, 43, . . .}
Viendo los elementos comunes a ambos conjuntos, deducimos que, por ejemplo, −41 es una solución al
sistema. Otras son −13, 15 y 43. De este tanteo, no queda claro si hay infinitas soluciones, pero vemos que
soluciones consecutivas encontradas difieren en 28, que es el producto de los módulos de las congruencias del
sistema. 
Hay un caso básico de congruencias simultáneas: el caso en que se tiene un sistema de dos congruencias. La
búsqueda de soluciones se establece en el siguiente resultado.
Lema 5.30. Sean a1 , a2 ∈ Z, y sean m1 , m2 ∈ Z+ . El sistema de congruencias

x ≡ m 1 a1
x ≡ m 2 a2
tiene solución en x si, y sólo si, a1 −a2 es un múltiplo de mcd (m1 , m2 ). Cuando admite solución x0 , el conjunto
solución del sistema es el conjunto de todos los enteros congruentes módulo mcm (m1 , m2 ) con x0 .
3. ECUACIONES DE CONGRUENCIA 65

Demostración. Un entero x es solución de la segunda congruencia si, y sólo si, existe k ∈ Z tal que
x = a2 + km2 . Luego, el sistema tiene solución si, y sólo si, existe k ∈ Z tal que a2 + km2 ≡m1 a1 , o
equivalentemente, m2 k ≡m1 a1 − a2 . Esta es una congruencia lineal en la variable k que admite solución si, y
sólo si, mcd (m1 , m2 ) | (a1 − a2 ) (teorema 5.22), con lo que queda probada la primera afirmación.
Supongamos ahora que el sistema tiene solución x0 . Debe ser x0 = a2 + k0 m2 para algún entero k0 que
satisfaga la congruencia m2 k ≡m1 a1 − a2 . Sabemos que todas las soluciones de esta última son de la forma
k0 + n · m1 /mcd (m1 , m2 ) con n ∈ Z (teorema 5.22), por lo que el conjunto solución del sistema es
     
m1 m1 m2
a 2 + k0 + n m2 : n ∈ Z = a 2 + k 0 m2 + n :n∈Z
mcd (m1 , m2 ) mcd (m1 , m2 )
= {x0 + n · mcm (m1 , m2 ) : n ∈ Z}
es decir, el conjunto de todos los enteros congruentes módulo mcm (m1 , m2 ) a x0 . 
Volviendo al ejemplo 5.28, tenemos a1 = 0, a2 = 1, m1 = 2 y m2 = 4. El sistema no tiene solución, pues no se
cumple la condición necesaria y suficiente dada en el lema: a2 − a1 = 1, que no es múltiplo de mcd (m1 , m2 ) = 2.
En relación al ejemplo 5.29, es a1 = 3, a2 = 1, m1 = 4 y m2 = 7. Ya que a2 − a1 = −2 y mcd (m1 , m2 ) = 1, se
satisface la condición dada en el lema 5.30, y el sistema admite solución, tal como ya hemos visto. Sabiendo que
una de ellas es −41, del lema podemos concluir que el conjunto solución está formado por todos los números de
la forma −41 + 28n, pues mcm (4, 7) = 28.
¿Y qué pasa si tenemos más de dos congruencias simultáneas? Por fortuna, hay un resultado que, basado en
el lema anterior, establece una condición suficiente para que el sistema admita solución, y que además caracteriza
a las soluciones en caso de haberlas. Sería inadmisible que el nombre de tal resultado no haga referencia a la
China que originó el problema.
Teorema 5.31. (Teorema Chino del Resto) Dado k ≥ 1, sean m1 , m2 , . . ., mk ∈ Z+ dos a dos
coprimos, y a1 , a2 , . . ., ak ∈ Z. Entonces, el sistema de congruencias x ≡m1 a1 , x ≡m2 a2 , . . . , x ≡mk ak admite
solución x0 tal que 0 ≤ x0 < m1 m2 · · · mk . El conjunto solución del sistema es el conjunto de todos los enteros
que son congruentes a x0 módulo m1 m2 · · · mk .
Demostración. Desglosaremos la prueba en dos partes.
1. Primero demostremos que el sistema admite solución, por inducción sobre k (la cantidad de congruencias
en el sistema).
Si hubiese una sola congruencia, basta con tomar x = a1 , que obviamente satisface al “sistema”.
Supongamos ahora que todo sistema con k congruencias de módulos dos a dos coprimos admi-
te solución. Consideremos el sistema x ≡m1 a1 , x ≡m2 a2 , . . . , x ≡mk ak , x ≡mk+1 ak+1 , con
m1 , . . . , mk , mk+1 dos a dos coprimos. De la hipótesis inductiva, sabemos que existe x′0 tal que
x′0 ≡m1 a1 , x′0 ≡m2 a2 , . . . , x′0 ≡mk ak . Consideremos el siguiente sistema de dos congruencias:

x ≡m1 ···mk x′0
(*)
x ≡mk+1 ak+1
Siendo mk+1 coprimo con m1 , . . . , mk es mcd (m1 · · · mk , mk+1 ) = 1, y entonces se satisface la
condición necesaria y suficiente del lema 5.30 para existencia de solución al sistema (*), pues 1 es
un factor de x′0 − ak+1 . Sea z una solución del mismo. Entonces, se cumple que z ≡mk+1 ak+1 y
que z ≡m1 ···mk x′0 . De esta última, tenemos, de la proposición 5.6, que z ≡m1 x′0 , . . . , z ≡mk x′0 , y
como x′0 ≡m1 a1 , . . . , x′0 ≡mk ak , se deduce que también es z ≡m1 a1 , . . . , z ≡mk ak . Es decir, z es
una solución al sistema de k + 1 congruencias.
2. En el ítem anterior, hemos mostrado que si m1 , . . . , mk son dos a dos coprimos, el sistema de con-
gruencias x ≡m1 a1 , x ≡m2 a2 , . . . , x ≡mk ak admite solución w. Llamemos x0 = r (w, m1 · · · mk ). Ya
que x0 ≡m1 ···mk w, tenemos, por la proposición 5.6, que x0 ≡m1 w ≡m1 a1 , . . . , x0 ≡mk w ≡mk ak , y
entonces x0 es solución al sistema de k congruencias que satisface 0 ≤ x0 < m1 · · · mk .
Por otro lado, por la transitividad de las congruencias y por el corolario 5.19, para cualquier entero
y se tiene que
(y ≡m1 a1 ∧ . . . ∧ y ≡mk ak ) ⇔ (y ≡m1 x0 ∧ . . . ∧ y ≡mk x0 ) ⇔ y ≡m1 ···mk x0
Es decir, el conjunto solución del sistema de congruencias es el conjunto de todos los enteros que
son congruentes módulo m1 · · · mk con x0 . Esto completa la demostración del teorema.

En la demostración del Teorema Chino (más precisamente, en el paso inductivo), tenemos implícito un
mecanismo recursivo para encontrar una solución al sistema. Todo lo que hay que hacer es saber resolver
sistemas de dos congruencias y, en base a ello, ir armando nuevas congruencias. La resolución de sistemas de
dos congruencias necesita a su vez de la resolución de ecuaciones lineales de congruencia, y es mejor hacer ésto
66 5. CONGRUENCIAS

a través del algoritmo extendido de Euclides, como se explicó en la sección correspondiente, pues el tanteo será
casi seguramente muy engorroso. A continuación, ejemplificamos la ejecución del método.
Ejemplo 5.32. Encontrar un número x tal que, simultáneamente, verifique x ≡14 9, x ≡15 1, x ≡17 12 y
x ≡23 20.
Tras verificar que los módulos de las congruencias son dos a dos coprimos, nos abocamos a la búsqueda de
solución.
1. Encontramos una solución a la primera congruencia. Es fácil: x′0 = 9.
2. Ahora resolvemos el sistema de dos congruencias x ≡14 9, x ≡15 1. Esto nos lleva a la búsqueda de t
tal que 1 + 15t ≡14 9, es decir, 15t ≡14 8. Una solución a esta congruencia lineal es t0 = 8. Calculamos
x′0 = 1 + 15 · 8 = 121 (que es una solución a las dos primeras congruencias) y formamos una nueva
congruencia: x ≡210 121 (el módulo es 210 porque 14 · 15 = 210).
3. Ahora resolvemos el sistema de dos congruencias x ≡210 121, x ≡17 12. Esto nos lleva a la búsqueda de
t tal que 12 + 17t ≡210 121, es decir, 17t ≡210 109. Una solución a esta congruencia lineal es t0 = 167.
Calculamos x′0 = 12 + 17 · 167 = 2.851 (que es solución a las tres primeras congruencias) y formamos
una nueva congruencia: x ≡3.570 2.851 (el módulo es 3.570 porque 210 · 17 = 3.570).
4. Finalmente resolvemos el sistema de dos congruencias x ≡3.570 2.851, x ≡23 20. Esto nos lleva a la
búsqueda de t tal que 20 + 23t ≡3.570 2.851, es decir, 23t ≡3.570 2.831. Una solución a esta congruencia
lineal es t0 = 2.917. Calculamos x′0 = 20 + 23 · 2.917 = 67.111.
Entonces, una solución al sistema propuesto es 67.111, lo cual se puede verificar por cálculo directo. Además,
observemos que 14 · 15 · 17 · 23 = 82.110, de modo que la solución encontrada está dentro del rango que asegura
el Teorema Chino del Resto (esto tiene que ver con que, en cada paso, hemos ido calculando t0 positivo lo más
chico posible, y con que de entrada teníamos 0 ≤ ai < mi para i = 1, 2, 3, 4). Todas las soluciones del sistema
son los números de la forma 67.111 + 82.110n, con n ∈ Z. 
Escribiremos a continuación el extenso algoritmo para resolver congruencias simultáneas, en notación funcio-
nal. Habrá una función auxiliar, res2cong (a1 , a2 , m1 , m2 ), para resolver el sistema de dos congruencias x ≡m1 a1 ,
x ≡m2 a2 , y que quedará indefinido en el caso en que las dos congruencias no cumplan la condición necesaria
y suficiente del lema 5.30; ésa será la manera en que el algoritmo nos indicará que un sistema no admite solu-
ción. La función principal se llamará chino, que recibirá, como argumentos, las listas de números {a1 , . . . , ak }
y {m1 , . . . , mk }, entendiéndose por ésto que se desea resolver el sistema de k congruencias x ≡m1 a1 , x ≡m2 a2 ,
. . ., x ≡mk ak . Si al ejecutarse el algoritmo se invoca a res2cong y éste queda indefinido, se debe interrumpir la
ejecución, con la conclusión de que no hay solución al sistema.

res2cong (a1 , a2 , m1 , m2 ) =
sea (s, t, g) = euclext(m2 , m1 )
sea (c, r) = crent(a1 − a2 , g) 
si (r = 0) contestar r a2 + m2 sc, m1gm2

chino ({a1 , . . . , ak } , {m1 , . . . , mk }) =


si (k = 1) contestar a1
sino contestar chino ({res2cong (a1 , a2 , m1 , m2 ) , a3 , . . . , ak } , {m1 m2 , m3 , . . . , mk })
Cortito, ¿no? Lo bueno, si breve...

4. Aspectos algebraicos de la congruencia: aritmética modular


La proposición 5.9 tiene una gran importancia en el siguiente sentido: ya que todo entero a es congruente
módulo m a r (a, m), que es un número entre 0 y m − 1, toda vez que hagamos operaciones entre enteros, éstas
serán también congruentes a un número entre 0 y m − 1. Por ejemplo, 5 · 8 + 4 ≡3 2, y 2 · 2 + 1 ≡3 2. Notemos
que 5 ≡3 2, 8 ≡3 2 y 4 ≡3 1. De este modo, las expresiones 5 · 8 + 4 y 2 · 2 + 1, si bien distintas como números
enteros, son congruentes módulo 3 a un mismo número del conjunto {0, 1, 2}.
Haciendo operaciones entre enteros, y tomando en cada paso el resto de la división por m, produciremos
un número entre 0 y m − 1. Y el número producido será congruente módulo m al resultado de aquella misma
operación en enteros. Tiene sentido definir entonces un sistema aritmético en el que sólo existan los números
enteros desde 0 hasta m − 1, y en el cual las operaciones básicas de suma y producto sean los resultados de
hacer esas mismas operaciones en Z y tomar resto de la división por m. En tal sistema, la congruencia módulo
m es naturalmente sustituida por la igualdad. El teorema 5.13 nos garantiza que las igualdades (en este nuevo
sentido) se comportan como uno espera.
Definición 5.33. Para m ∈ Z+ , definimos el conjunto Zm como el conjunto de todos los enteros mayores o
iguales que 0 y menores que m. En Zm , se definen las operaciones suma módulo m (+m ) y producto módulo
4. ASPECTOS ALGEBRAICOS DE LA CONGRUENCIA: ARITMÉTICA MODULAR 67

m (×m ) de la siguiente forma, para a, b ∈ Zm :


a +m b = r (a + b, m) a ×m b = r (ab, m)
El sistema aritmético modular Zm es el conjunto Zm con sus operaciones de suma y producto módulo m.
Es decir, Zm = {0, 1, . . . , m − 1} y a +m b es el único número de Zm al cual es congruente el entero a + b.
O sea que para a, b, c ∈ Zm , se tiene que a +m b = c si, y sólo si, a + b ≡m c. Análogamente, a ×m b = c
si, y sólo si, ab ≡m c. Como vemos, +m y ×m son dos operaciones binarias bien definidas (cerradas) en Zm .
Además, de la definición se ve que dos expresiones que contengan elementos y operaciones en Zm y que sean
iguales en Zm , pueden verse automáticamente como congruencias módulo m en Z. Por ejemplo, decir que
a ×m b = (c +m d) ×m k en Zm es equivalente a tener ab ≡m (c + d) k, con las operaciones habituales de suma
y producto de enteros. Recíprocamente, cualquier congruencia módulo m en enteros puede verse como una
igualdad en Zm , reemplazando a cada entero a que aparezca por r (a, m), y a las sumas y multiplicaciones de
enteros por sumas y productos en Zm .
Investigaremos ahora propiedades del sistema que acabamos de definir. Cuando se estudian las propiedades
de operaciones binarias definidas en un conjunto, estamos entrando al territorio de la Matemática que se llama
Álgebra.
¿Cómo son las tablas de las operaciones en Zm ? Veamos algunos ejemplos.
Para Z4 :
+4 0 1 2 3 ×4 0 1 2 3
0 0 1 2 3 0 0 0 0 0
1 1 2 3 0 1 0 1 2 3
2 2 3 0 1 2 0 2 0 2
3 3 0 1 2 3 0 3 2 1
Para Z5 :
+5 0 1 2 3 4 ×5 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
La simetría con respecto a la diagonal sugiere que la suma y el producto en Zm son operaciones
conmutativas. Efectivamente, para a, b ∈ Zm , a +m b ≡m a + b = b + a ≡m b +m a, es decir, a +m b ≡m b +m a,
lo cual implica que a +m b = b +m a (proposición 5.8). Argumentos análogos muestran que el producto módulo
m es conmutativo, y que la suma y el producto módulo m son también operaciones asociativas.
Otra propiedad importante de Zm , que relaciona a sus dos operaciones, es que vale la propiedad distri-
butiva del producto respecto de la suma: para a, b, c ∈ Zm , tenemos que
a ×m (b +m c) ≡m a (b + c) = ab + ac ≡m (a ×m b) +m (a ×m c)
Siendo a ×m (b +m c) ≡m (a ×m b) +m (a ×m c) y ambos elementos de Zm , se sigue que a ×m (b +m c) =
(a ×m b) +m (a ×m c).
Las dos operaciones tienen elemento neutro en Zm , el 0 en el caso de la suma y el 1 en el del producto:
para a ∈ Zm , tenemos que a +m 0 ≡m a + 0 = a, por lo que a +m 0 = a, pues a ∈ Zm . Por otro lado,
a ×m 1 ≡m a · 1 = a, por lo que a ×m 1 = a.
Investiguemos ahora la existencia de los inversos para cada operación. De nuestros ejemplos a través de las
tablas, conjeturamos que cada elemento a ∈ Zm tiene inverso aditivo en Zm , es decir, un x ∈ Zm tal que
a +m x = 0. Esto porque en cada fila de la tabla de suma aparece el neutro (y una sola vez en cada fila). ¿Quién
es ese x? Por inspección, podemos sospechar que casi siempre es m − a. Efectivamente.
Proposición 5.34. Sea m ∈ Z+ , y a ∈ Zm . El inverso aditivo de a en Zm existe y es único, y vale m − a,
salvo el caso a = 0 cuyo inverso aditivo es 0.
Demostración. Buscamos x ∈ Zm tal que a +m x = 0. Tenemos que
a +m x = 0 ⇔ a + x ≡m 0 ⇔ x ≡m −a ⇔ x ≡m m − a
Como 0 ≤ a < m, tenemos que 0 < m − a ≤ m. Si a = 0, queda que x ≡m 0, y entonces x = 0. Si a 6= 0, ya que
m − a ∈ Zm , se sigue que x = m − a. 
En adelante, al inverso aditivo de a lo llamaremos opuesto de a, y lo denotaremos por −a. En particular,
en Zm tenemos que −1 = m − 1.
¿Y qué hay de inversos para el producto? Es decir, dado a ∈ Zm , ¿existe x ∈ Zm tal que a ×m x = 1?
Vemos que 0 no tiene inverso en ningún Zm , pues 0×m x = 0 cualquiera sea x ∈ Zm . ¿Qué pasa con los elementos
no nulos de Zm ? De la tabla de multiplicar en Z4 , vemos que en la fila del 2 no aparece el neutro, por lo que 2
68 5. CONGRUENCIAS

no tiene inverso para esta operación. 1 y 3 sí lo tienen. En la tabla de ×5 , todo elemento no nulo tiene inverso.
Veamos qué es lo que pasa.
Proposición 5.35. Sea m ∈ Z+ , y a ∈ Zm − {0}. Se tiene que a posee inverso multiplicativo en Zm si, y
sólo si, a y m son coprimos. El inverso multiplicativo de a, si existe, es único.
Demostración. Buscamos x ∈ Zm tal que a ×m x = 1. Tenemos que a ×m x = 1 ⇔ ax ≡m 1, es decir,
existe el inverso multiplicativo de a si, y sólo si, la ecuación lineal de congruencia ax ≡m 1 tiene solución en
Z, lo cual ocurre si, y sólo si, mcd(a, m) | 1 que equivale a decir que mcd (a, m) = 1. Entonces, a tiene inverso
multiplicativo en Zm si, y sólo si, a es coprimo con m. Para la unicidad, supongamos que a ∈ Zm admite inverso
multiplicativo b ∈ Zm . Debe ser entonces mcd (a, m) = 1. Sea c ∈ Zm tal que a×m c = 1. Luego, ab ≡m 1 ≡m ac,
y por transitividad de la congruencia resulta ab ≡m ac. Como a y m son coprimos, por el corolario 5.17, es
b ≡m c, y entonces, por la proposición 5.8, resulta b = c. Es decir, el inverso de a es único. 
En lo sucesivo, al inverso multiplicativo de a, si existe, lo llamaremos simplemente inverso, y lo denotaremos
por a−1 .
Si p es primo, no puede ser un factor de ningún elemento a ∈ Zp − {0}, pues es 0 < a < p (proposición
2.9). Entonces, p es coprimo con todo elemento de Zp − {0} (proposición 3.4). Como consecuencia de ésto y de
nuestras investigaciones anteriores sobre existencia de inversos para el producto, tenemos el siguiente resultado.
Corolario 5.36. Si p es un número primo positivo, todo elemento de Zp , excepto el 0, tiene un único
inverso.
En N y en Z, ocurre que el producto de dos números es 0 si, y sólo si, al menos uno de los números es 0. En
Zm puede ser que no. Por ejemplo, en Z6 tenemos que 2 ×6 3 = 0. Pero en Zp con p primo, uno de los factores
debe ser 0 para que el producto sea 0.
Proposición 5.37. Sea p un primo positivo, y sean a, b ∈ Zp . Se tiene que a ×p b = 0 si, y sólo si, a = 0 o
b = 0.
Demostración. Supongamos que a ×p b = 0. Entonces, ab ≡p 0, por lo que p | ab. Por la regla de oro de
la aritmética, p | a o p | b. Pero siendo a, b ∈ Zp , esto implica que o bien a = 0 o bien b = 0.
La implicación recíproca es consecuencia directa de la definición de producto módulo p. 
En cualquier Zm se tiene que 1 ×m 1 = 1 y (m − 1) ×m (m − 1) = 1. Esta última puede verse ya que, por
2 2
propiedades de congruencias, (m − 1) ≡m (−1) = 1. Esto nos hace ver que, en Zm , el inverso de 1 es 1, y el
de m − 1 es m − 1. ¿Puede haber en Zm algún otro número que sea su propio inverso? Por supuesto que sí, por
ejemplo en Z8 tenemos que 3 ×8 3 = 1, por lo que 3 es su propio inverso en Z8 . Pero en Zp , con p primo, la cosa
cambia.
Proposición 5.38. Sea p primo positivo. Los únicos números que coinciden con su inverso en Zp son 1 y
p − 1.
Demostración. Más arriba vimos que siempre es 1 ×m 1 = 1 y (p − 1) ×m (p − 1) = 1. Luego, cada uno
de ellos coincide con su inverso en Zp . Para ver que son los únicos que tienen esa propiedad, sea x ∈ Zp tal que
x ×p x = 1 en Zp . Debe ser entonces, en la aritmética de Z, x2 ≡p 1, es decir, p debe ser un factor de x2 − 1.
Esto equivale a que p | (x − 1) (x + 1). Por la regla de oro de la aritmética, debe ser p | (x − 1) o p | (x + 1).
Entonces, ya que 0 ≤ x < p, debe ser x = 1 o x = p − 1 (pues en cualquier otro caso es 0 < |x − 1| < p y
0 < |x + 1| < p). Con esto queda demostrada la proposición. 
4.1. El Teorema de Wilson. Para m ≥ 2, ¿cuánto vale r ((m − 1)!, m)? Veamos la siguiente tabla, para
2 ≤ m ≤ 10.
m (m − 1)! r ((m − 1)!, m) m (m − 1)! r ((m − 1)!, m) m (m − 1)! r ((m − 1)!, m)
2 1 1 6 120 0 10 362.880 0
3 2 2 7 720 6 11 3.628.800 10
4 6 2 8 5.040 0 12 39.916.800 0
5 24 4 9 40.320 0 13 479.001.600 12
De la lectura de la tabla podemos elaborar las siguientes conjeturas:
1. Si m es primo, el resto es m − 1.
2. Si m no es primo, el resto es 0, excepto el caso m = 4.
Veremos ahora que las conjeturas son ciertas. Para guiar la intuición en el caso de ser m primo, analicemos
el caso m = 7, contando con el invalorable apoyo de nuestros conocimientos de Z7 y los inversos. Tenemos que
6! = 1 · 2 · 3 · 4 · 5 · 6. En Z7 , el inverso de 2 debe ser 3, 4 o 5 (proposición 5.38). Por cálculo, vemos que es 4. Y
entonces 3 y 5 son inversos entre sí. Por lo tanto, si multiplicamos módulo 7 los factores de 6!, resulta
1 ×7 2 ×7 3 ×7 4 ×7 5 ×7 6 = 1 ×7 (2 ×7 4) ×7 (3 ×7 5) ×7 6 = 1 ×7 1 ×7 1 ×7 6 = 6
4. ASPECTOS ALGEBRAICOS DE LA CONGRUENCIA: ARITMÉTICA MODULAR 69

de donde 6! ≡7 6, y por lo tanto r (6!, 7) = 6. Esto que hemos hecho para este ejemplo, se puede hacer en
general.
Teorema 5.39. (Wilson) Si p es primo positivo, entonces (p − 1)! ≡p −1.
Demostración. Si p = 2, tenemos que 1! = 1 ≡2 −1, y entonces el enunciado es cierto. Si p > 2,
consideremos F = {2, 3, . . . , (p − 2)}. Cada a ∈ F tiene su inverso (para el producto en Zp ) a−1 ∈ F , con
a−1 6= a (proposición 5.38). Por lo tanto, con todos los elementos de F se pueden formar (p − 3) /2 pares de
números tales que el producto módulo p de los números de cada pareja es 1. Por lo tanto, 2×p 3×p · · ·×p (p−2) = 1,
es decir, 2 · 3 · · · (p − 2) ≡p 1 y entonces (p − 1)! ≡p p − 1 ≡p −1, como queríamos probar. 
El teorema se llama así porque quien lo conjeturó fue el inglés John Wilson, pero en realidad quien lo
demostró es el francés Joseph Lagrange. La implicación recíproca a la del Teorema de Wilson es también cierta.
Teorema 5.40. Sea m un entero positivo mayor que 1. Si (m − 1)! ≡m −1, entonces m es primo.
Demostración. La aseveración es verdadera para m = 2 pues el consecuente es verdadero, así que veamos
que se cumple para m > 2. Para probar por el absurdo, supongamos que m es compuesto y que (m − 1)! ≡m −1.
Entonces, deben existir a, b ∈ N tales que m = ab con 2 ≤ a ≤ b ≤ m − 1. Tenemos que a | (m − 1)!, pues a es
uno de los m − 1 factores que componen el factorial. Como (m − 1)! ≡m −1, tenemos que m | (m − 1)! + 1, y,
por transitividad de la divisibilidad, resulta que a | (m − 1)! + 1. Siendo a factor de (m − 1)! y (m − 1)! + 1, por
la proposición 2.14, debe ser a un factor de 1, y entonces, por la proposición 2.10, es a = 1, contradiciendo que
es a ≥ 2. La contradicción provino de suponer que m es compuesto. Luego, m es primo. 
Finalmente, ¿qué pasa con r ((m − 1)!, m) si m no es primo?
Teorema 5.41. Si m es un compuesto positivo que es distinto de 4, entonces (m − 1)! ≡m 0.
Demostración. Sea m ≥ 2 compuesto distinto de 4. Entonces, existen a, b ∈ N tales que m = ab con
2 ≤ a ≤ m − 1 y 2 ≤ b ≤ m − 1.
Si a 6= b, tenemos que ab | (m − 1)! pues a y b corresponden a factores distintos en el factorial, y
entonces m | (m − 1)!, de donde (m − 1)! ≡m 0.
Si a = b, debe ser a > 2 (pues si fuese a = 2, sería m = 4, en contra de la hipótesis), y entonces
m = a2 > 2a, es decir, 2a ≤ m−1. Entonces, como 2 < a < 2a ≤ m−1, se tiene que a y 2a corresponden
a factores distintos en el factorial, de donde 2a2 | (m − 1)!. Por transitividad de la divisibilidad, tenemos
entonces que m | (m − 1)!, de donde (m − 1)! ≡m 0.
En definitiva, en cualquier caso tenemos que (m − 1)! ≡m 0 toda vez que m es compuesto distinto de 4. 
4.2. Una manera equivalente de definir Zm . La congruencia módulo m es una relación en el conjunto
de los números enteros: dados a, b ∈ Z, o bien a ≡m b o bien a 6≡m b. Las proposiciones 5.3, 5.4 y 5.5 nos
dicen que la relación de congruencia módulo m es una relación de equivalencia en el conjunto de los números
enteros. Cuando en un conjunto hay definida una relación de equivalencia, tiene sentido definir la clase de
equivalencia de cada elemento del conjunto. Una clase de equivalencia agrupa a todos los elementos del
conjunto que comparten la característica por la cual son equivalentes. En el caso de la congruencia módulo m,
para a ∈ Z, la clase de equivalencia de a, denotada por [a], es [a] = {b ∈ Z : b ≡m a}, es decir, el conjunto de
todos los enteros congruentes módulo m con a.
Ejemplo 5.42. En el caso m = 5, tenemos que
[17] = {b ∈ Z : b ≡5 17} = {b ∈ Z : ∃k ∈ Z : b = 17 + 5k}
= {17 + 5k : k ∈ Z} = {. . . , −8, −3, 2, 7, 12, 17, 22, 27, . . .}
Análogamente,
[2] = {2 + 5k : k ∈ Z} = {. . . , −8, −3, 2, 7, 12, 17, 22, 27, . . .}
[4] = {4 + 5k : k ∈ Z} = {. . . , −6, −1, 4, 9, 14, 19, 24, 29, . . .}
Se observa que, como conjuntos, [17] = [2] (¿tendrá algo que ver el hecho de que 17 ≡5 2?), en tanto que parece
que no hay elementos comunes a [2] y [4] (obsérvese que 2 6≡5 4). Además, 2 ∈ [2], 4 ∈ [4], 17 ∈ [17]. 
Del ejemplo anterior, nos damos cuenta de que puede haber enteros distintos cuyas clases de equivalencia
coinciden, y que puede haber clases de equivalencias distintas que no tengan elementos comunes. Además,
conjeturamos que todo entero pertenece a su propia clase de equivalencia. Todo esto es cierto, y lo demostramos
en los siguientes resultados.
Proposición 5.43. Sea m ∈ Z+ . Entonces, ∀a ∈ Z, a ∈ [a].
Demostración. Para cualquier entero a, se tiene que a ≡m a (proposición 5.3). Luego, a ∈ [a]. 
+
Proposición 5.44. Sea m ∈ Z . Entonces, ∀a ∈ Z, a ∈ [r (a, m)].
70 5. CONGRUENCIAS

Demostración. De la proposición 5.9, sabemos que cualquier entero a es congruente módulo m a r (a, m),
por lo que a ∈ [r (a, m)]. 
Proposición 5.45. Sea m ∈ Z+ , y a, b ∈ Z. Se tiene que [a] = [b] si, y sólo si, a ≡m b.
Demostración. Para la ida, supongamos que [a] = [b]. Como a ∈ [a], tenemos que a ∈ [b], y por lo tanto
a ≡m b.
Para la vuelta, supongamos que a ≡m b. Debemos mostrar que los conjuntos [a] y [b] son iguales. Sea c ∈ [a].
Entonces c ≡m a, y como por hipótesis es a ≡m b, por transitividad tenemos que c ≡m b, de donde c ∈ [b].
Idénticamente deducimos que si c ∈ [b], entonces c ∈ [a]. Luego, [a] = [b]. 
Corolario 5.46. Sea m ∈ Z+ . Entonces, ∀a ∈ Z, [a] = [r (a, m)].
Que dos conjuntos sean distintos no quita la posibilidad de que tengan elementos en común. Sin embargo,
cuando esos conjuntos son clases de equivalencia de una congruencia módulo m, no cabe esa posibilidad: dos
clases de equivalencia distintas son disjuntas.
Proposición 5.47. Sea m ∈ Z+ , y sean a, b ∈ Z tales que a 6≡m b. Entonces, [a] ∩ [b] = ∅.
Demostración. Por contrarreciprocidad, supongamos que [a] ∩ [b] 6= ∅. Entonces existe c tal que c ∈ [a] y
c ∈ [b], es decir, c ≡m a y c ≡m b. Por transitividad, tenemos que a ≡m b. 
De todo lo anterior, tenemos que las distintas clases de equivalencia bajo la relación ≡m forman una
partición de Z: literalmente, Z está partido en clases de equivalencia, de modo que cada entero está en sólo una
de ellas, y si unimos todas las clases de equivalencia obtenemos todo Z. ¿Cuántas clases de equivalencia distintas
hay para la relación ≡m ? De las proposiciones anteriores, tenemos que tratar de seleccionar la mayor cantidad
posible de enteros de modo que ningún par de ellos sea congruente módulo m. Eso nos lleva directamente a
pensar en los sistemas completos de restos módulo m. Hemos visto que uno de ellos es {0, 1, . . . , m − 1}. Como
todo sistema completo de restos módulo m, tiene m elementos. Quiere decir entonces que hay m clases de
equivalencia distintas para ≡m , y son [0], [1], . . ., [m − 1]. Designemos por Qm al conjunto cuyos elementos son
las clases de equivalencias distintas por ≡m . Es decir,
Qm = {[0] , [1] , . . . , [m − 1]}
Sean a y b enteros cualesquiera, y supongamos que tomamos c ∈ [a] y d ∈ [b]. Esto quiere decir que c ≡m a
y d ≡m b. Por el teorema 5.13, es c + d ≡m a + b y cd ≡m ab, por lo que c + d ∈ [a + b] y cd ∈ [ab]. Es decir,
sumar cualquier elemento de [a] con cualquier elemento de [b] produce un elemento en [a + b], y similarmente
para el producto. Basados en ésto, podemos definir en Qm dos operaciones binarias, suma y producto, de la
siguiente manera: para [a] y [b] pertenecientes a Qm , hagamos
[a] + [b] = [a + b] [a] [b] = [ab]
Debemos notar que son operaciones bien definidas, pues [a + b] = [r (a + b, m)] ∈ Qm y [ab] = [r (ab, m)] ∈
Qm (corolario 5.46).
Ejemplo 5.48. Para m = 5, es Q5 = {[0] , [1] , [2] , [3] , [4]}. Se tiene que, por ejemplo, [1] + [2] = [3], y
[2] [2] = [4]. También es [3] + [4] = [7] = [2], y [3] [4] = [12] = [2]. 
¿Cómo podemos hacer para saber, de manera rápida, cuánto vale [a] + [b]? Fácil: sumamos a y b como
números enteros, y vemos cuál es el resto de la división por m. Análogamente para [a] [b]. Pareciera entonces
que los corchetes no son necesarios, a condición de que hagamos la correspondiente operación y tomemos resto
de la división por m (aunque convengamos que suena más natural decir [3] + [4] = [2] que 3 + 4 = 2, sobre todo
si no estamos advertidos que, en esta última, “=” debe interpretarse como ≡5 ). Debe caerse en cuenta de la
correspondencia que hay entre Qm y Zm , tanto por sus elementos como por sus operaciones. En realidad, Qm
y Zm , con sus respectivas operaciones, pueden verse como la misma cosa, nada más que con los nombres de
sus elementos cambiados. Por esto, algunos autores definen Zm como el conjunto de las clases de equivalencia
en Z bajo la relación de equivalencia ≡m . En la materia Estructuras Algebraicas se verá con todo detalle una
generalización de todo esto, y se establecerá formalmente lo que quiere decir que “dos conjuntos y sus respectivas
operaciones son la misma cosa salvo cambio de nombres”.
4.3. El Pequeño Teorema de Fermat. En Zm tiene sentido también definir la operación de poten-
ciación natural positiva: para a ∈ Zm y n ∈ Z+ , an representa a ×m a ×m · · · ×m a, la operación de a consigo
mismo n veces. Formalmente, 
n a si n = 1
a =
a ×m an−1 si n > 1
Con esta definición, se tiene que an ∈ Zm para cualquier entero positivo n. Puede verse rápidamente que
hacer potenciación en Zm es equivalente a hacer potenciación en Z y tomar el resto de la división por m. Ocurre
4. ASPECTOS ALGEBRAICOS DE LA CONGRUENCIA: ARITMÉTICA MODULAR 71

que an = b (con la potenciación en Zm ) si, y sólo si, an ≡m b (con la potenciación en Z). Se tiene también que
n
an1 +n2 = an1 ×m an2 y que (an1 ) 2 = an1 n2 .
Por ejemplo, en Z6 , es 3 = 3. Obsérvese que, en Z6 , 3n = 3 cualquiera sea n ∈ Z+ . En Z5 , es 32 = 4, 33 = 2
4

y 3 = 1. En Z13 , es 52 = 12, y 54 = 1. También en Z13 , 22 = 4, 24 = 3, 28 = 9 y 212 = 1.


4

Podemos invertir más tiempo eligiendo números de Z13 y viendo que, para cada uno de ellos, alguna potencia
positiva da 1 (salvo 0, pues 0n = 0 cualquiera sea n ∈ Z+ ). Lo mismo pasa en Z5 , y, si hacemos la prueba,
en cualquier Zp que se nos ocurra tomar, con p primo. Conjeturamos entonces que, para p primo, se tiene que
∀a ∈ Zp − {0} , ∃n ∈ Z+ : an = 1 (con la operación de producto módulo p). Y efectivamente así es. Está
demostrado en el siguiente teorema.
Teorema 5.49. Sean p un primo positivo y a ∈ Zp − {0}. Entonces, existe un entero positivo n tal que
an = 1 (en la aritmética de Zp ).
Demostración. Consideremos la sucesión de las potencias positivas de a en Zp : a1 , a2 , a3 , . . . Dado que
todas ellas son elementos de Zp , deben existir enteros positivos i < j tales que ai = aj . Multipliquemos a ambos
miembros de esta igualdad en Zp por la i-ésima potencia del inverso de a (que sabemos que existe pues a 6= 0
i i
y p es primo). Nos queda entonces que aj ×p a−1 = ai ×p a−1 . Por la asociatividad del producto en Zp ,
tenemos que aj−i = 1 con j − i entero positivo, lo cual muestra la aseveración del teorema. 
Corolario 5.50. Sea p primo positivo y a ∈ Z. Si p no es factor de a, entonces existe n ∈ Z+ tal que
n
a ≡p 1 (en la aritmética de Z).
Demostración. Sea d = r (a, p). Como p no divide a a, es d 6= 0. Luego, d ∈ Zp − {0}. Ya que p es primo,
existe n ∈ Z+ tal que dn = 1 (con la potenciación definida para Zp ). Esto quiere decir que, con la potenciación
de números enteros, es dn ≡p 1. Ya que a ≡p d, del corolario 5.14 se tiene que an ≡p dn y por transitividad de
la congruencia, es an ≡p 1. 
El teorema 5.49 garantiza, para cada a ∈ Zp − {0}, la existencia de un n ∈ Z+ que cumple la propiedad de
que an = 1. Podemos sospechar que tal n depende de a. Por ejemplo, en Z13 , 54 = 1 pero 34 6= 1. Vemos que
un n que funcione para a ∈ Zp − {0} puede no cumplir que bn ≡p 1 para algún b 6= a. Sin embargo, hay un n
que anda bien con todo elemento. En realidad son varios, pero hay uno famoso.
Lema 5.51. Sean p primo positivo, a ∈ Zp − {0} y j, k ∈ Zp . Si j 6= k, entonces a ×p j 6= a ×p k.
Demostración. Demostraremos la contrarrecíproca. Supongamos a ×p j = a ×p k. Como p es primo y
a 6= 0, existe a−1 ∈ Zp − {0}, por lo que, multiplicando módulo p a ambos miembros de la igualdad por a−1 ,
quedamos con que j = k. 
Teorema 5.52. Sea p primo positivo. Entonces, ∀a ∈ Zp − {0}, ap−1 = 1 (en la aritmética de Zp ).
Demostración. Sea a ∈ Zp − {0}. Hagamos M = {k ×p a : k ∈ Zp − {0}}, que, en virtud del lema 5.51,
tiene p − 1 elementos, y de la proposición 5.37 ninguno de ellos es 0. Luego, M ⊂ Zp − {0}; el único subconjunto
de Zp − {0} con p − 1 elementos es el propio Zp − {0}. Luego, debe ser M = Zp − {0}. Por lo tanto, multiplicar
todos los números que hay en M (con el producto de Zp ) es lo mismo que multiplicar todos los elementos de
Zp − {0} (con su aritmética). De allí que
(a ×p 1) ×p (a ×p 2) ×p · · · ×p (a ×p (p − 1)) = 1 ×p 2 ×p · · · ×p (p − 1)
Sea k = 1 ×p 2 ×p · · · ×p (p − 1). De lo anterior, tenemos que k ×p ap−1 = k. Como ningún factor en k es 0,
tenemos que k 6= 0 (proposición 5.37), y entonces existe k −1 ∈ Zp − {0}, que, multiplicado módulo p a ambos
miembros de la igualdad anterior, produce ap−1 = 1 en la aritmética de Zp . 
Corolario 5.53. (Pequeño Teorema de Fermat) Sea p un primo positivo, y sea a un entero que no es
múltiplo de p. Entonces, ap−1 ≡p 1.
Demostración. Sea d = r (a, p). Se tiene que d ∈ Zp − {0}, por lo que en Zp es dp−1 = 1. Esto significa
que, en la aritmética de los enteros, dp−1 ≡p 1. Como a ≡p d, tenemos que ap−1 ≡p dp−1 (corolario 5.14), y por
transitividad de la congruencia módulo p es ap−1 ≡p 1. 
Corolario 5.54. Sea p un primo positivo. Entonces, ∀a ∈ Z, ap ≡p a.
Demostración. Sea a ∈ Z. Si p no es factor de a, por el Pequeño Teorema tenemos que ap−1 ≡p 1, por lo
que ap ≡p a (lema 5.12). Si p es factor de a, es a ≡p 0, y p | ap , por lo que ap ≡p 0. Entonces, por transitividad
de la congruencia módulo p, es también en este caso ap ≡p a. 
Corolario 5.55. Si p es primo positivo y a ∈ Zp − {0}, entonces a−1 = ap−2 .
Demostración. a ×p ap−2 = ap−1 = 1. 
72 5. CONGRUENCIAS

Corolario 5.56. Sean p primo positivo y a, b ∈ Z. Si p no es factor de a, entonces el conjunto solución


de la ecuación lineal de congruencia ax ≡p b es el conjunto de todos los enteros congruentes módulo p a ap−2 b.
Demostración. aap−2 b = ap−1 b ≡p 1·b = b, por lo que ap−2 b es una solución a la ecuación de congruencia.
Por el teorema 5.22, se sigue el resultado. 
Apéndice A

USO DEL SOFTWARE “MAPLE”

En este apéndice se tratará de guiar al lector para dar unos primeros pasos en el uso del software Maple
(versión 7.00), con el objetivo de implementar los algoritmos dados en el presente texto. No se pretende explorar
toda la riqueza de ese excelente programa, sino sólo instruir mínimamente en la manera de programar en la
notación algorítmica que hemos presentado. Sería deseable que, con este puntapié inicial, el lector se anime a
usar el software para investigar sobre muchas conjeturas en el reino de los número enteros, y, por qué no, a
formular las suyas propias (ojalá que también pueda probar analíticamente... ¡algunas de las que sean ciertas!).
Para poder usar el software Maple, éste debe estar previamente instalado en la computadora de trabajo.
Para invocarlo, se debe hacer doble clic en el ícono correspondiente. Se abre entonces una ventana blanca de
edición (posiblemente junto a otras más que no interesan ahora) y entramos al maravilloso mundo de dar órdenes
y, si las mismas tienen sentido, ver cómo son cumplidas.
El signo > y, a su lado, el símbolo del cursor parpadeante, indican que Maple espera de nosotros una
instrucción. La correspondiente respuesta, de haberla, se observará en azul.
Para dar una instrucción al programa con el objeto de que éste la ejecute, primero debe tipearse en pantalla
dicha instrucción, seguida por el símbolo de punto y coma (;) o bien por el de dos puntos (:). En ambos casos
la instrucción se ejecuta, imprimiéndose una respuesta si se terminó con ;. Durante el tipeo de la instrucción,
hay que tener cuidado con la distinción entre mayúsculas y minúsculas, ya que Maple es sensible a este hecho.
Por ejemplo, tipear un comando como “return” es muy distinto de tipear “Return”. Una vez finalizado el tipeo
de una instrucción, la misma se ejecuta presionando la tecla Enter. Enter, traducido a un lenguaje coloquial,
sería como “¡Hacé lo que te acabo de decir!”.
Presionar simultáneamente las teclas Shift y Enter producirá un cambio en la línea de edición (recurso
muchas veces usado para hacer más clara y legible la instrucción que se está tipeando). Maple no interpretará
Shift+Enter como orden de ejecución de la instrucción. Igualmente, el uso de sangría permite escribir códigos
legibles, y muchas veces se recomienda apelar al mismo. Veremos después algunos ejemplos.
A continuación, daremos una manera de implementar en Maple los distintos tipos de instrucciones vistas
en la sección Notación Algorítmica del Capítulo 2 y empleadas en varias partes de este libro.

Instrucciones de asignación. Tipear el nombre de la variable, seguido del signo := y luego la expresión
que define el nuevo valor de la variable (casi igual que en la notación algorítmica, excepto que omitimos la
palabra sea). Por ejemplo,
x:=5;
Luego de presionar Enter, la variable x queda con el valor 5. Podemos recuperar, durante la sesión, el valor de
la variable poniendo el nombre de la misma seguida de ; y luego Enter. Para asignar valores a varias variables
simultáneamente, se debe tipear las variables separadas por comas, luego :=, luego los valores para cada una
separados por comas, y finalmente ;. Por ejemplo, al hacer
x,z:=4,5;
la variable x queda valiendo 4, y la z queda con 5.
Importantísimo: El símbolo := es el operador de asignación. En la implementación de algoritmos, muchas
veces queremos saber si una variable tiene un cierto valor (por ejemplo, si la variable x vale 5). Para hacerlo,
debemos usar el símbolo =, que es un operador de comparación. Por ejemplo, al ejecutar en un programa la
comparación
x=5
se obtendrá true (verdadero) si la variable x efectivamente tiene almacenado un 5, y false (falso) en caso
contrario.
Otros operadores de comparación: > < >= <= <> (éste último significa “distinto de”).

Instrucción de retorno. La instrucción contestar expresión se logra en Maple tipeando


return expresión;
Por ejemplo, return 10*c; producirá que se conteste el valor que resulte de multiplicar por 10 lo que tenga
asignada la variable c.
73
74 A. USO DEL SOFTWARE “MAPLE”

Está permitido que la expresión a contestar sea una sucesión de dos o más elementos, que deberán ir
separados por comas. Por ejemplo, return c,r; contestará una sucesión de dos números: el primero con el
valor de la variable c y el segundo con el de r.

Instrucciones condicionales. Recordemos que, en nuestra notación algorítmica, las mismas responden
al siguiente esquema:
si (condición) lista1
sino lista2
En Maple, se logran tipeando lo siguiente:
if condición then lista1 else lista2 end if;
(y si no hay lista2, tipear if condición then lista1 end if;).
Por ejemplo, la instrucción condicional
si (r = 0) sea a = 2
sino sea a = 5
se implementa en Maple así:
if r=0 then a:=2 else a:=5 end if;
Si la condición es una proposición compuesta en donde aparecen conjunciones y disyunciones de propo-
siciones simples, se debe usar “and” para “y”, y “or” para “o”. Por ejemplo, para implementar en Maple la
instrucción condicional 
si (r ≥ 7 y r ≤ 23) o r > 50 sea a = 2
sino sea a = 5
debe tipearse:
If (r>=7 and r<=23) or r>50 then a:=2 else a:=5 end if;
Recordemos que lista1 y/o lista2 pueden estar constituidas por varias instrucciones. Al implementar en
Maple, es mejor que cada una de esas instrucciones (excepto la última) terminen con (:). En este caso,
lo mejor (aunque no obligatorio) es poner una instrucción por línea (pulsando Shift Enter para cambiar de
línea), y emplear sangría en el editor (para claridad). Por ejemplo, a continuación mostramos a la izquierda un
pseudocódigo, y a la derecha una posible implementación.
en pseudocódigo: en Maple:
si (r = 0) if r=0 then
sea a = 2 a:=2:
sea b = a2 b:=a^2:
sea c = a − 2b c:=a-2*b
sino else
sea a = r a:=r:
sea b = r3 − 2 b:=r^3-2
end if
Es de destacar que la instrucción no cambia si la tipeamos así:
if r=0 then a:=2:b:=a^2:c:=a-2*b else a:=r:b:=r^3-2 end if
pero se lee más fácil si las cosas se acomodan como hemos mostrado más arriba.

Declaración e invocación de funciones. Para declarar una función de una sola variable en Maple, la
mejor manera de hacerlo es la siguiente:
Nombre de la funcion:=proc(nombre del argumento)
.
.
.
end proc;
(Los puntos en vertical representan las sucesivas instrucciones que componen la función.)
Por ejemplo, la siguiente función eleva al cuadrado:
cuadrado:=proc(x)
return x^2
end proc;
Si en la implementación se usarán variables auxiliares intermedias para la evaluación de la función, es mejor
declararlas al principio, comenzando con la palabra local seguida de los nombres de las variables separadas
por comas, y finalizando con dos puntos. Por ejemplo, para declarar las variables auxiliares a,b,c:
A. USO DEL SOFTWARE “MAPLE” 75

Nombre de la funcion:=proc(nombre del argumento)


local a,b,c:
.
.
.
end proc;
Ninguna de estas variables “locales” puede llamarse igual que el argumento de la función.
Como antes, es mejor que la lista de instrucciones tenga una instrucción por línea, y es obligatorio que
cada instrucción (excepto la última) termine por un signo de dos puntos (:). Luego de cada :, debe apretarse
Shift Enter, para cambiar de línea en el tipeo. El Enter únicamente debe pulsarse después de haber escrito el
end proc; final, luego de la última instrucción, para dar a entender al programa que allí terminó la definición de
la función. Maple entonces hace un chequeo de sintaxis, mostrando errores si los hay. Si no los hay, la función
declarada ya está disponible para su invocación.
Veamos un ejemplo de implementación:
en pseudocódigo: en Maple:
h(x) = h:=proc(x) local n:
sea n = x − 20 n:=x-20;
si (n > 2x) contestar 3n if n>2*x then return 3*n
sino else
sea n = n · x n=n*x:
si (n < 400) contestar 1 − nx if n<400 then return 1-n*x
sino contestar x2 else return x^2
end if
end if
end proc;
Si una función tiene más de un argumento, deben colocarse sus nombres separados por comas. Por ejemplo:
en pseudocódigo: en Maple:
máx(x, y) = max:=proc(x,y)
si (x ≥ y) contestar x if x>=y then return x
sino contestar y else return y
end if
end proc;
Una vez declarada, una función se puede invocar con valores concretos para sus argumentos. Se coloca para ello
el nombre de la función y los valores de los argumentos entre paréntesis, separados por comas, terminando con
punto y coma. Usando nuestras implementaciones anteriores, para calcular cuál es el mayor entre los números
−5 y −2, podríamos ejecutar max(-5,-2); (recibiendo como respuesta −2), o para saber el cuadrado de 7
podríamos ejecutar cuadrado(7); (recibiendo como respuesta 49).
Si una función contiene llamadas a funciones hijas, mejor no invocar a la madre hasta que tengamos todas
las funciones hijas ya implementadas. En este caso, hay que ir haciendo Enter al terminar de definir cada función
(la madre y las hijas). Recién entonces se podrá invocar a la madre sin sorpresas.
Algunos ejemplos. Seguidamente, mostramos implementaciones de varias de las funciones que aparecieron
en este texto.

Cociente y resto de naturales, algoritmo ineficiente:


cr:=proc(a,b) local c,r:
if a<b then return 0,a
else
c,r:=cr(a-b,b):
return 1+c,r
end if
end proc;

Cociente y resto de naturales, algoritmo más eficiente (exige tener implementado el de más arriba, pues lo
invoca):
cr10:=proc(a,b) local c,r,c1,r1:
if a<b then return 0,a
else
c,r:=cr10(a,10*b):
76 A. USO DEL SOFTWARE “MAPLE”

c1,r1:=cr(r,b):
return 10*c+c1,r1
end if
end proc;

Cociente y resto de enteros, usando el de naturales (se usa también la función abs, ya implementada en
Maple, que devuelve el valor absoluto):
crent:=proc(a,b) local c,r:
c,r:=cr10(abs(a),abs(b)):
if a>=0 then
if b>0 then return c,r else return -c,r end if
else
if b>0 then
if r=0 then return -c,0 else return -c-1,b-r end if
else
if r=0 then return c,0 else return c+1,-b-r end if
end if
end if
end proc;
Podemos utilizar la función anterior para calcular individualmente cociente y resto del entero a dividido por el
entero b, así:
cent:=proc(a,b) local c,r:
c,r:=crent(a,b):
return c
end proc;

rent:=proc(a,b) local c,r:


c,r:=crent(a,b):
return r
end proc;

Decisión de primalidad de un número entero. Una respuesta true significa que el argumento es un número
primo, mientras que false significa que no.
primo:=proc(a)
if abs(a)<=1 then return false
else
if rent(a,2)=0 then
if abs(a)=2 then return true else return false end if
else return probarfactor(abs(a),3)
end if
end if
end proc;

probarfactor:=proc(n,f)
if f^2>n then return true
else
if rent(n,f)=0 then return false else return probarfactor(n,f+2) end if
end if
end proc;

Máximo común divisor entre dos enteros, algoritmo de Euclides:


mcdeucl:=proc(a,b)
if b=0 then return abs(a) else return mcdeucl(b,rent(a,b)) end if
end proc;

Algoritmo extendido de Euclides:


euclext:=proc(a,b) local c,r,s1,t1,g:
if b=0 then return cent(abs(a),a),0,abs(a)
A. USO DEL SOFTWARE “MAPLE” 77

else
c,r:=crent(a,b):
s1,t1,g:=euclext(b,r):
return t1,s1-t1*c,g
end if
end proc;

Manejo de listas. Para Maple, las uplas ordenadas se representan mediante listas de elementos separados
por comas y delimitados por corchetes. Por ejemplo, [5,3,2,5] corresponde a la cuaterna (5, 3, 2, 5). Con la
misma naturalidad con que con una sola letra representamos todo un conjunto, en Maple podemos asignar a
una variable toda una lista. Por ejemplo, para la lista anterior podemos poner
a:=[5,3,2,5];
Incluso está permitida la lista vacía: [], es decir, una lista sin elementos.
Podemos acceder a los elementos de una lista poniendo el nombre de la misma y el número de orden del
término que nos interesa, entre corchetes. Por ejemplo, para nuestra lista a de arriba, a[3] vale 2.
Algunas observaciones sobre cómo manipular listas en Maple:
La longitud de la lista (es decir, el número de términos que contiene) se obtiene con la función nops.
Por ejemplo, nops(a) da el número de elementos de la lista a (si a=[5,3,2,5], nops(a) contesta 4;
nops([]) devuelve 0, pues la lista vacía no tiene elementos).
op(a) da la sucesión de elementos de la lista a sin los corchetes (si a=[5,3,2,5], op(a) contesta
5,3,2,5). La subsucesión de una lista a que va desde la posición i hasta la posición j se obtiene con
op(i..j,a) (en nuestro ejemplo, op(2..3,a) corresponde a la sucesión 3,2). En particular, la lista
que resulta de eliminar el primer elemento de una lista a se obtiene con [op(2..nops(a),a)].
El operador de concatenación es la coma. La concatenación de los elementos de la lista a con los de
la lista b en una nueva lista se hace mediante [op(a),op(b)]. Como caso particular, si se tiene dada
una lista a y se desea crear una nueva lista que sea la misma que a excepto que con el elemento n al
principio, se puede hacer [n,op(a)] para crearla. Por ejemplo, si a es [5,3,2,5], [9,op(a)] dará la
lista [9,5,3,2,5] (la lista a queda como estaba, pues no se le asignó un nuevo valor con esta operación).
Con esto, estamos en condiciones de implementar dos importantes algoritmos más:

Máximo común divisor entre varios números enteros:


mcdeuclista:=proc(a)
if nops(a)=1 then return a[1]
else
return mcdeucl(a[1],mcdeuclista([op(2..nops(a),a)]))
end if
end proc;
Ejemplo de invocación: mcdeuclista([14,18,12,27]);.

Resolución de un sistema de dos congruencias:


res2cong:=proc(a1,a2,m1,m2) local s,t,g,c,r:
s,t,g:=euclext(m2,m1):
c,r:=crent(a1-a2,g):
if r=0 then return rent(a2+m2*s*c,cent(m1*m2,g)) end if
end proc;
Ejemplo de invocación: res2cong(4,8,13,27);.

Resolución de un sistema de varias congruencias:


chino:=proc(a,m) local na,nm:
if nops(a)=1 then return a[1]
else
na:=[res2cong(a[1],a[2],m[1],m[2]),op(2..nops(a),a)]:
nm:=[m[1]*m[2],op(2..nops(m),m)]:
return chino(na,nm)
end if
end proc;
Ejemplo de invocación: chino([4,8,7],[13,27,16]);.
78 A. USO DEL SOFTWARE “MAPLE”

Cadenas de texto y códigos ASCII. Para Maple, una cadena de texto es una sucesión de letras y
símbolos encerrados entre comillas. Por ejemplo T:="Abba"; asigna a la variable T la cadena Abba.
Antes de trabajar con cadenas de texto, conviene cargar un subpaquete predefinido de Maple (que contiene
muchas funciones útiles, en particular, los códigos ASCII) haciendo with(StringTools):.
Si T es una cadena de texto, su longitud se obtiene mediante length(T), y su i-ésimo carácter mediante
T[i]. Más generalmente, substring(T,i..j) corresponde a la subcadena de T comprendida entre las posiciones
i y j (ambas inclusive). Por ejemplo, substring("Abba",2..3) corresponde a "bb".
La concatenación de dos o más cadenas se hace con la función cat que tiene como argumentos las cadenas
a concatenar separadas por comas. Por ejemplo, cat("ab","cdef","gh") produce la cadena "abcdefgh".
El código ASCII de un símbolo se obtiene haciendo Ord con el símbolo entre comillas y todo entre paréntesis.
Por ejemplo, Ord("a") contesta 97. El carácter que corresponde a un código n (0 ≤ n < 256) se obtiene con
Char y n encerrado entre paréntesis. Por ejemplo, Char(97) contesta "a".

También podría gustarte