La forma más rápida de enumerar todos los números primos debajo de N
Este es el mejor algoritmo que pude encontrar. def get_primes(n): numbers = set(range(n, 1, -1)) primes = [] while numbers: p = numbers.pop() primes.append(p) numbers.difference_update(set(range(p*2, n+1, p))) return primes >>> timeit.Timer(stmt='get_primes.get_primes(1000000)', setup='import get_primes').timeit(1) 1.1499958793645562 ¿Se puede hacer aún más rápido? Este código tiene una falla: dado que numberses un conjunto …