Está en la página 1de 2

Prctica con PSP0

La criba de Eratstenes es un algoritmo que permite hallar todos los nmeros primos
menores que un nmero natural dado n. Se llena una tabla con todos los nmeros
naturales comprendidos entre 2 y n siendo n un nmero ledo por teclado, atendiendo
los siguientes limitantes 1 < n <= 10, y se van convirtiendo en cero nmeros que no
son primos de la siguiente manera:
Comenzando por el 2, se convierten en cero todos sus mltiplos; comenzando de nuevo,
cuando se encuentra un nmero entero que no ha sido convertido en cero, ese nmero es
declarado primo, y se procede a convertir en cero todos sus mltiplos, as
sucesivamente. El proceso termina cuando el cuadrado del mayor nmero confirmado
como primo es mayor que n.

Proceso de criba
Determinemos, mediante el siguiente ejemplo, el proceso para determinar la lista de los
nmeros primos menores de 20.
1) Primer paso: se llena un arreglo con los nmeros naturales comprendidos entre
2 y 20
2

10

11

12

13

14

15

16

17

18

19

20

2) Segundo paso: Se toma el primer nmero , no marcado, como nmero primo.

10 11 12 13 14 15 16 17 18 19 20

3) Tercer paso: Se convierten en cero todos los mltiplos del nmero que se acaba
de indicar como primo.

11 0

13 0

15 0

17 0

19 0

4) Cuarto paso: Si el cuadrado del primer nmero que no ha sido marcado es


inferior a 20, entonces se repite el segundo paso. Si no, el algoritmo termina, y
todos los enteros no marcados son declarados primos.
Como 3 = 9 < 20, se vuelve al segundo paso:

11 0

13 0

17 0

En el cuarto paso, el primer nmero que no ha sido tachado ni marcado es 5. Como su


cuadrado es mayor que 20, el algoritmo termina y se consideran primos todos los
nmeros que no han sido marcados.

19 0

Como resultado se obtienen e imprimen los nmeros primos comprendidos entre 2 y 20,
y estos son:
2, 3, 5, 7, 11, 13, 17, 19.
Se pide:
Elaborar un programa en lenguaje C que encuentre e imprima todos los nmeros primos
comprendidos entre 2 y n, utilizando el algoritmo de la criba de Eratstenes, atendiendo
las siguientes indicaciones:
a) Utilizar programacin orientada a objetos, crear una clase denominada Criba,
con un campo arreglo.
b) Utilizar un arreglo de enteros de mximo 100 elementos, por lo que deber
validar que el usuario no introduzca un nmero mayor que la cantidad mxima.
c) Escribir una funcin int divisor(int, int), que reciba dos nmeros
enteros y devuelva un 1 (uno) si el primer nmero es divisor del segundo o un 0
(cero) si no lo es, esta funcin la utilizar en el programa para encontrar los
divisores del nmero evaluado.
d) Se evaluar que el programa siga el algoritmo de la criba de Eratstenes
planteado en este documento.
e) Almacenar los resultados en un archivo de texto

Entregar:
1.
2.
3.
4.
5.

El cdigo fuente del programa,


Respaldo del Process Dashboard
Captura de pantalla de la ejecucin del programa.
Captura de pantalla de pruebas realizadas
Revisar los tiempos y los defectos.