Академический Документы
Профессиональный Документы
Культура Документы
ndice
1. Introduccin
.
.
.
.
.
.
.
1
1
1
3
3
4
4
4
3. Algoritmo de Euclides
3.1. Algoritmo de Euclides . . . . . . . . . . .
3.2. Igualdad de Bzout . . . . . . . . . . . .
3.3. Primos relativos . . . . . . . . . . . . . .
4
4
5
6
4. Ecuacin diofntica
4.1. Soluciones . . . . . . . . . . . . . . . . .
4.2. Soluciones no negativas . . . . . . . . .
5. Primos
5.1. Propiedades fundamentales . . . . . .
5.2. Criba de Eratstenes . . . . . . . . . .
5.3. Factorizacin . . . . . . . . . . . . . . .
5.3.1. Bsqueda de un divisor primo
5.3.2. Primer test de primalidad . . .
5.3.3. Factorizacin por fuerza bruta
5.3.4. Factorizacin de Fermat . . . .
.
.
.
.
.
.
.
6
6
7
7
7
8
8
9
9
9
10
6. Primos misteriosos
10
7. Buscando primos
11
ndice alfabtico
12
1. Introduccin
Estas notas corresponden a la transcripcin de parte de las transparencias utilizadas en las clases de Introduccin a la Matemtica Discreta, correspondiente a los estudios de Grado en Ingeniera Informtica en la
Universidad de Sevilla, y contienen todos los datos relevantes de las mismas.
Se incluyen muy pocas demostraciones.
Z = {. . . , 2, 1, 0, 1, 2, . . .}
El conjunto de todos los naturales o enteros no negativos se designar por
IN = {0, 1, 2, . . .}
El conjunto de todos los enteros positivos se designar por
Z+ = {1, 2, . . .}
2.2. Algunos enteros famosos
Mencionaremos aqu algunos nmeros enteros que tienen propiedades notables, y que utilizaremos a lo largo
del curso.
Indicaremos ciertas de sus propiedades, por ahora sin demostracin (ms adelante demostraremos alguna de
ellas). De hecho algunas de estas propiedades se enuncian utilizando conceptos que estudiaremos ms tarde y
usan resultados que tambin estudiaremos posteriormente.
Nmeros de Fibonacci: Leonardo de Pisa (1170-1250), tambin llamado Fibonacci defini la sucesin
infinita de enteros que lleva su nombre. En ella los dos primeros nmeros son 1, 1 y cada uno de los
siguientes se obtiene sumando los dos anteriores.
Los primeros nmeros de la sucesin de Fibonacci son
f 1 = 1, f 2 = 1, f 3 = 2, f 4 = 3, f 5 = 5, f 6 = 8, f 7 = 13, f 8 = 21, f 9 = 34, . . .
Los nmeros de Fibonacci tienen muchas propiedades como se ver a lo largo del curso. Algunas que
demostraremos despus son:
Dos nmeros de Fibonacci consecutivos son primos entre s: mcd( f n , f n+1 ) = 1. ?
mcd( f n , f m ) = f mcd(n,m) ?
f n puede ser calculado usando solo aritmtica entera por un algoritmo de orden O (l og n).
Una frmula explcita para f n (que utiliza nmeros reales y sorprendentemente se evala siempre
a un nmero entero) es
p !n
p !n
1 1 5
1 1+ 5
p
fn = p
2
2
5
5
El nmero =
p
1+ 5
2
Nmeros de Mersenne: Marin Mersenne (1588-1648) defini los llamados nmeros de Mersenne como
M n = 2n 1 para n 1. Un primo de Mersenne es un nmero de Mersenne que es primo.
Los primeros nmeros de Mersenne son
M 1 = 1, M 2 = 3, M 3 = 7, M 4 = 15, M 5 = 31, M 6 = 63, . . .
Algunas propiedades de estos nmeros son:
M n es un nmero cuya representacin binaria consiste en n unos. ?
M n no tiene que ser primo: de hecho, si n es compuesto entonces M n es compuesto. ?
Solo se conocen 48 nmeros primos de Mersenne; el mayor de ellos es M 57885161 = 257885161 1, un
nmero de ms de diecisiete millones de cifras decimales.
n
Nmeros de Fermat: Pierre de Fermat (1601-1665) defini los nmeros de Fermat como F n = 22 +1, para
n 0. Un nmero primo de Fermat es un nmero de Fermat que es primo.
Los primeros nmeros de Fermat son
F 0 = 3, F 1 = 5, F 2 = 17, F 3 = 257, F 4 = 65537, F 5 = 4294967297, F 6 = 18446744073709551617, . . .
Algunas propiedades de estos nmeros son:
Los cinco primeros son primos; de hecho Fermat crea que todos eran primos. Euler prob que no
era as en 1732:
5
F 5 = 22 + 1 = 232 + 1 = 4294967297 = 641 6700417
Actualmente, solo son conocidos cinco nmeros primos de Fermat, que son los cinco primeros y
slo se conoce la factorizacin completa de los doce primeros.
Nmeros de Euclides: Si p 1 = 2, p 2 = 3 p 3 = 5, . . . son los nmeros primos ordenados en orden creciente,
entonces los nmeros de Euclides, llamados as en honor de Euclides (325-265 AC), se definen como
en = p1 . . . pn + 1
Los primeros nmeros de Euclides son
e 1 = 3, e 2 = 7, e 3 = 31, e 4 = 211, e 5 = 2311, e 6 = 30031, e 7 = 510511, . . .
Algunas propiedades de estos nmeros son:
2
Los cinco primeros nmeros de Euclides son primos; en cambio e 6 = 30031 = 59509, con lo que no
todos lo son. No se sabe si existen infinitos nmeros de Euclides que sean a su vez primos.
Ningn nmero de Euclides puede ser un cuadrado perfecto. ?
Para n 3, en la expresin decimal de e n el dgito de las unidades es siempre 1. ?
0r b
r
<1
b
(para algn c Z)
Si a es mltiplo de b entonces
jak lam a
a
Z
=
=
b
b
b
b
en otro caso podemos representar la situacin de los tres valores sobre la recta real del modo siguiente:
b|a
a
b
a
b
a
b
bk
=
=
n
2k
b k1
bk
=1y
n
2k+1
b k2
b k1
...
...
b1
b2
b0
b1
Resumiendo:
n
2
puede
El nmero de bits de un nmero n es log2 n + 1 y es el nmero de veces que hay que dividir n hasta obtener
cociente cero.
3. Algoritmo de Euclides
El algoritmo de Euclides para el clculo del mximo comn divisor es uno de los ms antiguos documentados
y es tambin uno de los ms elegeantes y eficientes.
=
=
=
=
=
=
b
1066
426
214
212
2
c
1
2
1
1
106
+
+
+
+
+
+
r
426
214
212
2
0
=
=
=
=
b
426
214
212
1
2
1
1
+
+
+
+
426
214
212
d
La afirmacin recproca es falsa: puede tenerse una igualdad de enteros d = a +b pero d 6= mcd(a, b); basta
considerar la igualdad 2 12 3 7 = 3 y evidentemente 3 no es el mcd(12, 7).
Sin embargo si d = 1, entonces s:
a | b c
a|c
4. Ecuacin diofntica
Una ecuacin diofntica lineal con dos incgnitas (para nosotros, simplemente ecuacin diofntica), es una
ecuacin
a x +b y = c
donde a, b, c son enteros y buscamos solo las soluciones enteras.
4.1. Soluciones
El resultado principal es
La ecuacin diofntica ax + b y = c tiene solucin si y slo si d = mcd(a, b) divide a c, y entonces tiene infinitas
soluciones.
La demostracin de la afirmacin anterior aporta de hecho un mtodo constructivo para resolver la ecuacin.
En efecto, como d divide a a y a b, si hay solucin (x 0 , y 0 ) entonces d |(ax 0 + b y 0 ) = c. Adems, en este caso, la
igualdad de Bzout a + b = d nos da una solucin particular (x 0 , y 0 ):
a + b = d a
c
c
c
+b =
d
d
d
d
x0
y0
A partir de esta solucin particular podemos obtener todas las soluciones: si (x, y) es una solucin, entonces
ax + b y = ax 0 + b y 0 y de aqu
ax ax 0 = b y 0 b y a(x x 0 ) = b(y 0 y)
a
b
(x x 0 ) = (y 0 y) a 0 |b 0 (y 0 y)
d
d
a0
b0
Como a 0 + b 0 = 1 es a 0 b 0 y por tanto a 0 |(y 0 y), es decir existe un entero k tal que y 0 y = a 0 k de donde
y = y 0 a 0 k = dc da k. Si ahora sustituimos este valor de y en ax + b y = c, obtenemos que x = dc + db k.
Resumiendo estos resultados:
Si mcd(a, b) = d = a + b, entonces la ecuacin diofntica ax + b y = c tiene solucin si y solo si d |c y en este
caso hay infinitas soluciones:
c b
+ k
d d
c a
y = k
d d
x =
con k Z
x 0 dc + db k 0 c + bk 0 k c
b
j k
c
y 0 dc da k 0 c ak 0 c ak k a
j
c
a
< c
b entonces la ecuacin no tiene soluciones no negativas. En otro caso, la ecuacin tiene exactaj k
c
mente a c
b + 1 soluciones.
Si
5. Primos
Un entero p > 1 es primo si sus nicos divisores positivos son 1 y p. Un entero positivo que no es primo se dice
compuesto.
La principal propiedad de los nmeros primos es que son los grandes divisores:
Todo entero mayor que 1 es divisible por un primo.
10
11
12
13
14
15
16
17
18
19
20
...
2. El primer
p nmero p = 2 no es divisible por ningn primo anterior (no los hay) luego es primo; entonces si
p > n , se detiene el proceso y todos los elementos que quedan en la lista son primos. Si no, se borran
todos los siguientes que sean mltiplos de p:
2
11
13
15
17
19
...
11
13
17
19
...
11
13
17
19
p
n y entonces todos los
5.3. Factorizacin
A partir del hecho de que todo entero mayor que 1 es divisible por un primo, se demuestra que:
Todo entero n > 1 es producto de primos:
mk
n = p1 1 . . . pk
Si ordenamos los primos, p 1 < p 2 < . . . < p k , entonces esta descomposicin es nica.
...
n+1
6
Para k = 1 hasta m
Si 6k 1|n retorna 6k 1
Si 6k + 1|n retorna 6k + 1
Retorna n
1. Este algoritmo siempre retorna el menor primo divisor de n.
Distinguimos dos casos:
Si n es un primo p entonces nunca se dan las condiciones de salida de dentro del bucle y se retorna
p, el menor primo que divide a n.
Si n es compuesto y p es el menor primo que divide a n entonces:
Si p = 2 o p = 3 se sale sin entrar en el bucle y se retorna p.
p
p
p
Si p > 3 entonces p = 6k 1. Tambin p
n de donde 6k 1 n 6k n + 1 k m
(notacin del algoritmo). Entonces el bucle llega a p y lo retorna.
1
n+1
6
O (n 2 ).
Cunto tiempo podra llegar a tardar este algoritmo en encontrar un factor primo de n si n tuviera tuviera
1
256 bits? Como el algoritmo de de orden O (n 2 ), si n ' 2256 entonces el nmero de operaciones es del orden
1
256 2
(2 )
O ((2256 ) 2 ). Haciendo 1000000 de operaciones por segundo, esto supondra aproximadamente 1000000
' 341031
segundos y dividiendo este nmero de segundos entre 606024365 tendramos una aproximacin del nmero
de aos:
10.790.283.070.806.014.188.970.529 aos
5.3.2. Primer test de primalidad
Un test de primalidad es un algoritmo que decide si un nmero dado es primo o compuesto.
El algoritmo anterior puede ser usado como un test de primalidad: si el valor retornado p es igual a su entrada
n es que n es primo. Este test es determinista, ya que su respuesta es siempre segura.
El problema es que para enteros grandes no es eficiente.
5.3.3. Factorizacin por fuerza bruta
Si aplicamos el algoritmo a un entero n 1 = n encontramos p, un factor primo de n. Si a continuacin lo aplin
camos a n 2 = pi encontramos otro (puede que el mismo) y as sucesivamente, hasta que n i = 1 (o sea primo) y
entonces tenemos todos los factores primos de n. Por tanto:
El algoritmo anterior puede usarse para encontrar la factorizacin de cualquier nmero.
Ya hemos visto que este algoritmo no es viable para enteros grandes. Normalmente se combina con un paso
previo: usando una tabla precalculada (Eratstenes) de los primeros primos (tpicamente los primos menores
que 2000), se prueba a buscar divisores del nmero en esa tabla. Luego se aplica el algoritmo anterior (modificado para no repetir las divisiones anteriores).
El algoritmo resultante (con un aadido para saber si en cada paso el n que nos queda ya es primo, con lo que
habramos terminado) el el que se llama algoritmo de factorizacin por fuerza bruta.
5.3.4. Factorizacin de Fermat
En 1643 Mersenne desafi a Fermat a que ste factorizara el nmero 2027651281. Fermat contest rpidamente
2027651281 = 44021 46061. Cmo lo hizo?
La idea de Fermat consiste en que si n es impar, entonces si encontramos x, y tales que n = x 2 y 2 tendramos
n = (x + y)(x y). Si ninguno de estos factores es 1, tenemos dos divisores propios de n. El mtodo consiste
p
entonces en probar todos los x > n hasta que x 2 n sea cuadrado perfecto.
Esto se puede sistematizar en el siguiente algoritmo
FACTORIZACIN DE F ERMAT
entrada: n positivo impar
salida: un factor de n
p
x = (n)
y2 = x 2 n
// y 2 representa aqu y 2
mientras y 2 no sea un cuadrado
x = x +1
y2 = a2 n
p
retorna x y 2
Si n tiene ms de dos factores primos, este procedimiento primero encuentra la descomposicin con el menor
p
n
es el mayor factor
valor de x e y. Es decir, x + y es el menor factor mayor o igual que n. Por tanto, x y = x+y
p
menor o igual que n. Si el procedimiento devuelve n = 1 n, entonces n debe ser primo.
Si n es primo hacen falta O (n) pasos. Esta es desde luego una mala forma de demostrar la primalidad de un nmero. Pero si n tiene un factor prximo a su raz cuadrada, el mtodo funciona rpidamente. Concretamente,
p
si n tiene un factor que difiere de n en menos de (4n)1/4 , entonces el mtodo slo necesita un paso, y esto es
independiente del tamao de n.
En su forma ms simple, el mtodo de Fermat puede ser incluso ms lento que el de fuerza bruta, en el peor de
los casos. Sin embargo, la combinacin de ambos es ms efectivo que el uso exclusivo de uno de ellos.
Una gran mejora en los algoritmos de factorizacin se consigue combinando los mtodos anteriores con un
test eficiente de primalidad, para detener el algoritmo cuando encuentra un factor primo. El problema es que
por ahora no tenemos ese test.
6. Primos misteriosos
Hay infinitos primos.
Euclides demostr este
hecho de un
n
ln n
10
7. Buscando primos
Cmo se encuentra un nmero primo de un tamao determinado?
Si buscamos un primo de n bits podemos empezar construyendo un entero impar de n bits:
1
y ahora rellenamos cada bit eligindolo al azar. Tenemos entonces un impar de n bits. Ahora probamos si
es primo: si lo es, ya lo tenemos. Si no es primo, volvemos a sortear.
Este mtodo plantea dos preguntas:
1. Cmo sabemos que ya hemos encontrado un primo?
La respuesta es: usando un test de primalidad. El problema es que el nico test que tenemos es inviable
para nmeros grandes.
2. Cuntas veces tendremos que probar? ser un nmero inviable, o infinito?
Por el Teorema de los nmeros primos, una estimacin del nmero de primos menores o iguales que 2n
es
2n
2n
=
ln(2n ) n ln 2
Entonces la probabilidad estimada de encontrar un primo por el mtodo anterior es (valor aproximado
de casos favorables / casos posibles de impares):
2n
n ln 2
2n1
2
n ln 2
El nmero de intentos esperados hasta encontrar un primo sera la inversa de esta probabilidad:
n ln 2
2 .
11
ndice alfabtico
Algoritmo de Euclides, 4, 5
Extendido, 6
Algoritmo extendido de Euclides, 6
Algunos enteros famosos, 1
Primos relativos, 6
Propiedad cancelativa, 4
Propiedades bsicas de la divisibilidad, 4
Razn urea, 2
Suelo, 3
Tamao de los nmeros, 3
Techo, 3
Teorema de los nmeros primos, 10, 11
Test de primalidad, 9, 11
Determinista, 9
Primera opcin, 9
Compuesto, 7
Criba de Eratstenes, 8
Descomposicin en factores primos, 8
Divide a, 3
Divisin
Cociente, 3
Eucldea, 3
Exacta, 3
Resto, 3
Divisor, 3
Divisores de cero, 4
Ecuacin diofntica, 6
Soluciones, 6
Soluciones no negativas, 7
Eratstenes, 8
Euclides, 24, 10
Euler, 2
Factorizacin
Fuerza bruta, 9
Factorizacin de Fermat, 10
Fermat
Factorizacin, 10
Nmeros de Fermat, 2
Primo de Fermat, 2
Fibonacci, 2
Igualdad de Bzout, 5
Infinitos primos, 10
Mximo comn divisor, 4
Mltiplo, 3
Mnimo comn mltiplo, 4
Mersenne, 2
Primo de Mersenne, 2
Nmeros enteros, 1
Parte entera, 3
Primos, 7
Descomposicin en factores primos, 8
Factorizacin, 8
Fuerza bruta, 10
Propiedades fundamentales, 7
Primos misteriosos, 10
12