De Wikipedia:
La complexité de l'algorithme réside dans
O(n(logn)(loglogn))
les opérations sur les bits.
Comment y arrivez-vous?
Que la complexité inclut le loglogn
terme me dit qu'il y a un sqrt(n)
quelque part.
Supposons que j'exécute le tamis sur les 100 premiers nombres ( n = 100
), en supposant que le marquage des nombres comme composites prend un temps constant (implémentation du tableau), le nombre de fois que nous utilisons mark_composite()
serait quelque chose comme
n/2 + n/3 + n/5 + n/7 + ... + n/97 = O(n^2)
Et pour trouver le prochain nombre premier (par exemple pour sauter après 7
avoir barré tous les nombres multiples de 5
), le nombre d'opérations serait O(n)
.
Donc, la complexité serait O(n^3)
. Êtes-vous d'accord?