De Wikipedia:
La complejidad del algoritmo son
O(n(logn)(loglogn))las operaciones de bits.
¿Cómo llegas a eso?
Que la complejidad incluya el loglogntérmino me dice que hay un sqrt(n)lugar.
Supongamos que estoy ejecutando el tamiz en los primeros 100 números ( n = 100), suponiendo que marcar los números como compuestos toma un tiempo constante (implementación de matriz), la cantidad de veces que usamos mark_composite()sería algo así como
n/2 + n/3 + n/5 + n/7 + ... + n/97 = O(n^2)
Y para encontrar el siguiente número primo (por ejemplo, para saltar 7después de tachar todos los números que son múltiplos de 5), el número de operaciones sería O(n).
Entonces, la complejidad sería O(n^3). ¿Estás de acuerdo?