O crivo de Erastótenes

Gera uma lista de primos até Nmax utilizando a técnica do crivo de Erastótenes


#Sieve Erastótenes


from numpy import ones
import math

def sieve(Nmax):
    sieveOut =[]
    vec_control= ones(Nmax)
     
            
    for i in range(2,Nmax):
        if vec_control[i] ==1:
            sieveOut.append(i)

            #Zera todos os múltiplos daqui para frente
            for j in range(2,math.ceil(Nmax/i)):
                vec_control[j*i] =0
    
    return(sieveOut)




Veja também:

Forgotten Math

Forgotten Lore - Ideias Técnicas com uma pitada de filosofia.