import timeit
 
def sieve_of_eratosthene(N):
    
    # Lista de números primos:
    numbers = []
 
    # Cria-se uma lista referente a todos os inteiros entre 0 e N:
    A = [True] * (N+1)
 
    # Define os números 0 e 1 como não primos:
    A[0] = A[1] = False
 
    # Percorra a lista até encontrar o primeiro número primo:
    for value, prime in enumerate(A):
 
        # O número é primo?
        if prime:
 
            # Retorna o número primo:
            numbers.append(value)
 
            # Remova da lista todos os múltiplos do número enontrado:
            for i in range(value**2, N+1, value):
                A[i] = False
                
    return numbers
 
def main():
    primes = sieve_of_eratosthene(2750159)
    print("Saida:", [primes[i] for i in [7, 1, 199999, 4]])
 
print("Tempo: {}s".format(timeit.timeit(main, number=1)))