Ejecute el tamiz normal varias veces, aumentando el número máximo cada vez. Haga esto hasta que tenga el número deseado de primos. Si hace esto usando un aumento exponencial en el número máximo en cada iteración, entonces la cantidad de trabajo adicional estará limitada por un (pequeño) múltiplo de adivinar el número máximo perfectamente la primera vez.
Puede guardar los resultados de cada iteración para sembrar la siguiente, pero esto no es realmente estrictamente necesario para obtener un buen tiempo de ejecución. (Realizar esta optimización ahorra solo un factor constante 2x).
Por ejemplo, ejecuta el tamiz en N = 100, luego N = 200, N = 400, N = 800, etc. Luego, en el peor de los casos, necesitaba N uno más que una potencia de 2, pero en su lugar ejecutó el tamiz en dos veces el tamaño de matriz necesario. (Sin embargo, tenga en cuenta que no necesita hacer todo el trabajo de la última iteración si está contando números primos a medida que avanza).
- ¿Son reales los conceptos abstractos?
- Cómo comenzar a aprender matemáticas desde cero
- Cómo diseñar un juego de mesa a través de un método matemático
- ¿Un buen puntaje GRE en materia de matemáticas agrega algún valor a la aplicación cuando se aplica a los programas de doctorado de IEOR?
- ¿Cómo se relacionan el sánscrito y las matemáticas?