• No se han encontrado resultados

Números primos y criterios de divisibilidad

N/A
N/A
Protected

Academic year: 2022

Share "Números primos y criterios de divisibilidad"

Copied!
21
0
0

Texto completo

(1)

N´ umeros primos y criterios de divisibilidad

Taller de ´Algebra I

1er cuatrimestre de 2014

(2)

Verificando si un n´ umero es primo

Ejercicio: (¡para hacer ahora!) Escribir una funci´on que determine si un n´umero natural es primo.

primo :: Integer -> Bool primo 2 = True

primo n = ...

En este caso, se complica un poco pensarlo directamente en forma recursiva. No es tan evidente c´omo plantear primo n en funci´on de primo (n-1).

Pero si planteamos esto:

primo n = length (factorizar n) == 1 O esto:

primo n = length (divisores n) == 2

Y ahora, ¿C´omo podemos escribir la funci´on divisores?

(3)

Verificando si un n´ umero es primo

Ejercicio: (¡para hacer ahora!) Escribir una funci´on que determine si un n´umero natural es primo.

primo :: Integer -> Bool

primo 2 = True primo n = ...

En este caso, se complica un poco pensarlo directamente en forma recursiva. No es tan evidente c´omo plantear primo n en funci´on de primo (n-1).

Pero si planteamos esto:

primo n = length (factorizar n) == 1 O esto:

primo n = length (divisores n) == 2

Y ahora, ¿C´omo podemos escribir la funci´on divisores?

(4)

Verificando si un n´ umero es primo

Ejercicio: (¡para hacer ahora!) Escribir una funci´on que determine si un n´umero natural es primo.

primo :: Integer -> Bool primo 2 = True

primo n = ...

En este caso, se complica un poco pensarlo directamente en forma recursiva. No es tan evidente c´omo plantear primo n en funci´on de primo (n-1).

Pero si planteamos esto:

primo n = length (factorizar n) == 1 O esto:

primo n = length (divisores n) == 2

Y ahora, ¿C´omo podemos escribir la funci´on divisores?

(5)

Verificando si un n´ umero es primo

Ejercicio: (¡para hacer ahora!) Escribir una funci´on que determine si un n´umero natural es primo.

primo :: Integer -> Bool primo 2 = True

primo n = ...

En este caso, se complica un poco pensarlo directamente en forma recursiva. No es tan evidente c´omo plantear primo n en funci´on de primo (n-1).

Pero si planteamos esto:

primo n = length (factorizar n) == 1 O esto:

primo n = length (divisores n) == 2

Y ahora, ¿C´omo podemos escribir la funci´on divisores?

(6)

Verificando si un n´ umero es primo

Ejercicio: (¡para hacer ahora!) Escribir una funci´on que determine si un n´umero natural es primo.

primo :: Integer -> Bool primo 2 = True

primo n = ...

En este caso, se complica un poco pensarlo directamente en forma recursiva. No es tan evidente c´omo plantear primo n en funci´on de primo (n-1).

Pero si planteamos esto:

primo n = length (factorizar n) == 1 O esto:

primo n = length (divisores n) == 2

Y ahora, ¿C´omo podemos escribir la funci´on divisores?

(7)

Verificando si un n´ umero es primo

Ejercicio: (¡para hacer ahora!) Escribir una funci´on que determine si un n´umero natural es primo.

primo :: Integer -> Bool primo 2 = True

primo n = ...

En este caso, se complica un poco pensarlo directamente en forma recursiva. No es tan evidente c´omo plantear primo n en funci´on de primo (n-1).

Pero si planteamos esto:

primo n = length (factorizar n) == 1

O esto:

primo n = length (divisores n) == 2

Y ahora, ¿C´omo podemos escribir la funci´on divisores?

(8)

Verificando si un n´ umero es primo

Ejercicio: (¡para hacer ahora!) Escribir una funci´on que determine si un n´umero natural es primo.

primo :: Integer -> Bool primo 2 = True

primo n = ...

En este caso, se complica un poco pensarlo directamente en forma recursiva. No es tan evidente c´omo plantear primo n en funci´on de primo (n-1).

Pero si planteamos esto:

primo n = length (factorizar n) == 1 O esto:

primo n = length (divisores n) == 2

Y ahora, ¿C´omo podemos escribir la funci´on divisores?

(9)

Verificando si un n´ umero es primo

Ejercicio: (¡para hacer ahora!) Escribir una funci´on que determine si un n´umero natural es primo.

primo :: Integer -> Bool primo 2 = True

primo n = ...

En este caso, se complica un poco pensarlo directamente en forma recursiva. No es tan evidente c´omo plantear primo n en funci´on de primo (n-1).

Pero si planteamos esto:

primo n = length (factorizar n) == 1 O esto:

primo n = length (divisores n) == 2

Y ahora, ¿C´omo podemos escribir la funci´on divisores?

(10)

Criba de Erat´ ostenes

Fue el primero en calcular y dejar registro el radio de la Tierra.

Le di´o R = 40.000/2π = 6366.19 km Las mediciones actuales dan 6378 km

Para el curioso: se bas´o un m´etodo basado en las sombras de objetos de referencia.

Lacriba de Erat´osteneses un algoritmo para hallar todos los n´umeros primos menores que un natural dado n.

1 Escribir una tabla con todos los n´umeros entre 2 y n.

2 El primer entero no tachado es primo. Imprimirlo y tachar todos sus ultiplos.

3 Repetir el paso anterior hasta que no queden n´umeros sin tachar. Esta descripci´on no es muy funcional... ¿C´omo se implementar´ıa en Haskell?

(11)

Criba de Erat´ ostenes

Fue el primero en calcular y dejar registro el radio de la Tierra.

Le di´o R = 40.000/2π = 6366.19 km Las mediciones actuales dan 6378 km

Para el curioso: se bas´o un m´etodo basado en las sombras de objetos de referencia.

Lacriba de Erat´osteneses un algoritmo para hallar todos los n´umeros primos menores que un natural dado n.

1 Escribir una tabla con todos los n´umeros entre 2 y n.

2 El primer entero no tachado es primo. Imprimirlo y tachar todos sus ultiplos.

3 Repetir el paso anterior hasta que no queden n´umeros sin tachar.

Esta descripci´on no es muy funcional... ¿C´omo se implementar´ıa en Haskell?

(12)

Criba de Erat´ ostenes

Fue el primero en calcular y dejar registro el radio de la Tierra.

Le di´o R = 40.000/2π = 6366.19 km Las mediciones actuales dan 6378 km

Para el curioso: se bas´o un m´etodo basado en las sombras de objetos de referencia.

Lacriba de Erat´osteneses un algoritmo para hallar todos los n´umeros primos menores que un natural dado n.

1 Escribir una tabla con todos los n´umeros entre 2 y n.

2 El primer entero no tachado es primo. Imprimirlo y tachar todos sus ultiplos.

3 Repetir el paso anterior hasta que no queden n´umeros sin tachar.

Esta descripci´on no es muy funcional... ¿C´omo se implementar´ıa en Haskell?

(13)

Criterios de divisibilidad

Representamos n´umeros naturales como listas de enteros, de modo tal que cada posici´on de la lista corresponde a un d´ıgito en base 10:

Ejemplos:

1 145 = [1,4,5]

2 13 = [1,3]

3 0 = [0]

Ya sabemos c´omo pasar de un Int a una [Int] que lo represente en base 10!

(14)

Ejercicios

Implementar una funci´on en Haskell que reciba un n´umero natural como par´ametro e indique si el mismo es primo. Utilizar la criba de Erat´ostenes.

Conjetura (Christian Goldbach, 1742) Todo n´umero par mayor que 2 puede escribirse como suma de dos n´umeros primos.

Ejercicio Hacer un programa en Haskell que chequee la conjetura de Goldbach: Dado un n´umero natural n, determinar si puede escribirse como suma de dos n´umeros primos.

Ejercicio Programar los siguientes criterios de divisibilidad:

1 Un n´umero es m´ultiplo de 2 cuando termina en una cifra par.

2 Un n´umero es m´ultiplo de 5 cuando termina en 0 o 5.

3 Un n´umero es m´ultiplo de 10 cuando termina en 0.

4 Un n´umero es m´ultiplo de 4 cuando el n´umero formado por sus dos

´

ultimas cifras es m´ultiplo de 4.

5 Un n´umero es m´ultiplo de 8 cuando el n´umero formado por sus tres

´

ultimas cifras es m´ultiplo de 8.

(15)

Ejercicios

Implementar una funci´on en Haskell que reciba un n´umero natural como par´ametro e indique si el mismo es primo. Utilizar la criba de Erat´ostenes.

Conjetura (Christian Goldbach, 1742) Todo n´umero par mayor que 2 puede escribirse como suma de dos n´umeros primos.

Ejercicio Hacer un programa en Haskell que chequee la conjetura de Goldbach: Dado un n´umero natural n, determinar si puede escribirse como suma de dos n´umeros primos.

Ejercicio Programar los siguientes criterios de divisibilidad:

1 Un n´umero es m´ultiplo de 2 cuando termina en una cifra par.

2 Un n´umero es m´ultiplo de 5 cuando termina en 0 o 5.

3 Un n´umero es m´ultiplo de 10 cuando termina en 0.

4 Un n´umero es m´ultiplo de 4 cuando el n´umero formado por sus dos

´

ultimas cifras es m´ultiplo de 4.

5 Un n´umero es m´ultiplo de 8 cuando el n´umero formado por sus tres

´

ultimas cifras es m´ultiplo de 8.

(16)

Ejercicios

Implementar una funci´on en Haskell que reciba un n´umero natural como par´ametro e indique si el mismo es primo. Utilizar la criba de Erat´ostenes.

Conjetura (Christian Goldbach, 1742) Todo n´umero par mayor que 2 puede escribirse como suma de dos n´umeros primos.

Ejercicio Hacer un programa en Haskell que chequee la conjetura de Goldbach: Dado un n´umero natural n, determinar si puede escribirse como suma de dos n´umeros primos.

Ejercicio Programar los siguientes criterios de divisibilidad:

1 Un n´umero es m´ultiplo de 2 cuando termina en una cifra par.

2 Un n´umero es m´ultiplo de 5 cuando termina en 0 o 5.

3 Un n´umero es m´ultiplo de 10 cuando termina en 0.

4 Un n´umero es m´ultiplo de 4 cuando el n´umero formado por sus dos

´

ultimas cifras es m´ultiplo de 4.

5 Un n´umero es m´ultiplo de 8 cuando el n´umero formado por sus tres

´

ultimas cifras es m´ultiplo de 8.

(17)

Ejercicios

Implementar una funci´on en Haskell que reciba un n´umero natural como par´ametro e indique si el mismo es primo. Utilizar la criba de Erat´ostenes.

Conjetura (Christian Goldbach, 1742) Todo n´umero par mayor que 2 puede escribirse como suma de dos n´umeros primos.

Ejercicio Hacer un programa en Haskell que chequee la conjetura de Goldbach: Dado un n´umero natural n, determinar si puede escribirse como suma de dos n´umeros primos.

Ejercicio Programar los siguientes criterios de divisibilidad:

1 Un n´umero es m´ultiplo de 2 cuando termina en una cifra par.

2 Un n´umero es m´ultiplo de 5 cuando termina en 0 o 5.

3 Un n´umero es m´ultiplo de 10 cuando termina en 0.

4 Un n´umero es m´ultiplo de 4 cuando el n´umero formado por sus dos

´

ultimas cifras es m´ultiplo de 4.

5 Un n´umero es m´ultiplo de 8 cuando el n´umero formado por sus tres

´

ultimas cifras es m´ultiplo de 8.

(18)

Ejercicios

Implementar una funci´on en Haskell que reciba un n´umero natural como par´ametro e indique si el mismo es primo. Utilizar la criba de Erat´ostenes.

Conjetura (Christian Goldbach, 1742) Todo n´umero par mayor que 2 puede escribirse como suma de dos n´umeros primos.

Ejercicio Hacer un programa en Haskell que chequee la conjetura de Goldbach: Dado un n´umero natural n, determinar si puede escribirse como suma de dos n´umeros primos.

Ejercicio Programar los siguientes criterios de divisibilidad:

1 Un n´umero es m´ultiplo de 2 cuando termina en una cifra par.

2 Un n´umero es m´ultiplo de 5 cuando termina en 0 o 5.

3 Un n´umero es m´ultiplo de 10 cuando termina en 0.

4 Un n´umero es m´ultiplo de 4 cuando el n´umero formado por sus dos

´

ultimas cifras es m´ultiplo de 4.

5 Un n´umero es m´ultiplo de 8 cuando el n´umero formado por sus tres

´

ultimas cifras es m´ultiplo de 8.

(19)

Ejercicios

Implementar una funci´on en Haskell que reciba un n´umero natural como par´ametro e indique si el mismo es primo. Utilizar la criba de Erat´ostenes.

Conjetura (Christian Goldbach, 1742) Todo n´umero par mayor que 2 puede escribirse como suma de dos n´umeros primos.

Ejercicio Hacer un programa en Haskell que chequee la conjetura de Goldbach: Dado un n´umero natural n, determinar si puede escribirse como suma de dos n´umeros primos.

Ejercicio Programar los siguientes criterios de divisibilidad:

1 Un n´umero es m´ultiplo de 2 cuando termina en una cifra par.

2 Un n´umero es m´ultiplo de 5 cuando termina en 0 o 5.

3 Un n´umero es m´ultiplo de 10 cuando termina en 0.

4 Un n´umero es m´ultiplo de 4 cuando el n´umero formado por sus dos

´

ultimas cifras es m´ultiplo de 4.

5 Un n´umero es m´ultiplo de 8 cuando el n´umero formado por sus tres

´

ultimas cifras es m´ultiplo de 8.

(20)

Criterios de divisibilidad

M´as ejercicios! Sumando cifras ...

1 Un n´umero es m´ultiplo de 3 cuando la suma de sus cifras es m´ultiplo de 3 (¡y esto ´ultimo se decide recursivamente!).

2 Un n´umero es m´ultiplo de 9 cuando la suma de sus cifras es m´ultiplo de 9.

Ejercicios sencillos. Aprovechando lo que ya tenemos ...

1 Un n´umero es m´ultiplo de 6 cuando es m´ultiplo de 2 y de 3.

2 Un n´umero es m´ultiplo de 12 cuando es m´ultiplo de 3 y 4, o bien es ultiplo de 6.

3 Un n´umero es m´ultiplo de 15 cuando es m´ultiplo de 3 y 5.

(21)

Criterios de divisibilidad

Nuevos ejercicios! Criterios de cintur´on negro ...

1 Un n´umero es m´ultiplo de 7 cuando, al separar la ´ultima cifra de la derecha, multiplicarla por 2 y restarla de las cifras restantes, la diferencia es m´ultiplo de 7.

2 Para determinar si un n´umero es m´ultiplo de 11, sumar las cifras en posici´on impar por un lado y las de posici´on par por otro. Luego se resta el resultado de ambas sumas obtenidas. El n´umero es m´ultiplo de 11 si el resultado es m´ultiplo de 11.

3 Un n´umero es divisible por 17 cuando, al separar la ´ultima cifra de la derecha, multiplicarla por 5 y restarla de las cifras restantes la diferencia es m´ultiplo de 17.

4 Un n´umero es divisible por 19 si al separar la cifra de las unidades, multiplicarla por 2 y sumar a las cifras restantes el resultado es ultiplo de 19.

Referencias

Documento similar

La suma de matrices de n´ umeros reales de cualquier tama˜ no es conmutativa, asociativa, y tiene elemento neutro dado por la matriz nula. Es consecuencia directa de las

Podemos apreciar una clara relaci´ on, entre el n´ umero de SNPs involucrados en la primer gen de la pareja, es decir, el n´ umero de cis-EQTL que utilizamos como

Se obtienen todas las ternas primitivas posibles siempre que r,p tengan como divisor común la

Si E X es un conjunto finito, la suma que define E[X] consta de un n´ umero finito de sumandos y es, por tanto, absolutamente convergente. As´ı, toda variable con un n´ umero finito

la segunda coordenada: el n´umero de participantes que obtuvieron 5, 6 ´o 7 puntos (esencialmente “la mitad o un poco m´as” del problema).. la tercera coordenada: el n´umero

La categoría de los entrelazados no orientados es la categoría donde los objetos son números enteros no negativos, y un morfismo m → n entre los objetos m y n (m, n ∈ Z + ∪ {0})

Primero.— Que por la parte actora antes citada se formuló demanda de fecha 20/02/2015 que fue turnada y recibida en este Juzgado contra la demandada ya mencionada, en la que después

41 Como su nombre lo indica, el teorema fundamental de la aritmética es la propiedad más importante de los números primos en el sentido que a través de ellos, a todos