CRIBA DE ERATÓSTENES
La criba de Eratóstenes es
un algoritmo que
permite hallar todos los números primos menores
que un número natural dado n.
Se forma una tabla con todos los números naturales comprendidos entre 2 y n,
y se van tachando los números que no son primos de la siguiente manera:
Comenzando por el 2, se tachan todos sus múltiplos; comenzando de nuevo, cuando
se encuentra un número entero que no
ha sido tachado, ese número es declarado primo, y se procede a tachar todos sus
múltiplos, así sucesivamente. El proceso termina cuando el cuadrado del mayor número confirmado como primo o no lo
es.
Proceso de criba
Determinemos, mediante el siguiente
ejemplo, el proceso para determinar la lista de los números primos menores de
20.
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
2. Segundo paso: Se toma el
primer número no rayado ni marcado, como número primo.
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
3. Tercer paso: Se tachan
todos los múltiplos del número que se acaba de indicar como primo.
2
|
3
|
|
5
|
|
7
|
|
9
|
|
11
|
|
13
|
|
15
|
|
17
|
|
19
|
|
4. Cuarto paso: Si el
cuadrado del primer número que no ha sido rayado ni marcado es inferior a 20,
entonces se repite el segundo paso. Si no, el algoritmo termina, y todos los enteros
no tachados son declarados primos.
Como 3² = 9 < 20, se vuelve al
segundo paso:
2
|
3
|
|
5
|
|
7
|
|
|
|
11
|
|
13
|
|
|
|
17
|
|
19
|
|
En el cuarto paso, el primer número 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 números que no han sido tachados.
Como resultado se obtienen los números
primos comprendidos entre 2 y 20, y estos son: 2, 3, 5, 7, 11, 13, 17, 19.
Refinamiento
Un refinamiento de la criba consiste en tachar
los múltiplos del k-ésimo número primo pk,
comenzando por pk2 pues en los
anteriores pasos se habían tachado los múltiplos de pk correspondientes
a todos los anteriores números primos, esto es, 2pk, 3pk,
5pk,..., hasta (pk-1)pk.
El algoritmo acabaría cuando p2k>n ya
que no habría nada que tachar.1
Otro refinamiento consiste en generar
una lista sólo con números impares (pues los números pares distintos de 2 se
sabe que no son primos), e ir tachando los múltiplos de los números primos
mediante incrementos de 2p, es decir, los múltiplos impares (2k+1)p de
cada primo p. Esto aparece en el algoritmo original.
Comentarios
Publicar un comentario