De acuerdo con la Wikipedia la Criba de Eratóstenes es un algoritmo que permite hallar todos los números primos menores que un número natural n, mediante el siguiente proceso:
Gráficamente, el proceso se realizaría de la siguiente forma:
primos = function(x){
numeros = 2:x
d = 1
while(numeros[d]^2 <= x){
for(n in numeros){
if(numeros[d] != n){
if(n%%numeros[d]==0){
numeros = numeros[-which(numeros==n)]
}
}
}
d=d+1
}
numeros
}
primos(200)
## [1] 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67
## [20] 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163
## [39] 167 173 179 181 191 193 197 199
import numpy as np
def primos(x):
numeros = list(range(2,x+1))
d=0
while numeros[d]**2 <= x:
for n in numeros:
if n != numeros[d]:
if n % numeros[d] == 0:
numeros.remove(n)
d += 1
return numeros
primos(200)
## [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, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]
\[\ \]
\[\ \]