Crible d'Atkin

Le crible d'Atkin est un procédé qui permet de trouver tous les nombres premiers inférieurs à un certain entier naturel donné N. C'est une version améliorée du crible d'Ératosthène, il fut créé en 1999 par A. O. L. Atkin et Daniel J. Bernstein.

Stratégie

Le crible d'Ératosthène consiste à trouver les valeurs pouvant se réduire à la forme quadratique binaire réduite x⋅y (produit de deux entiers strictement supérieurs à 1). Le crible d'Atkin consiste lui à dénombrer les valeurs d'une forme quadratique binaire non-réduite. Par exemple, un entier sans facteur carré p qui est congru à 1 modulo 4 est premier si et seulement si l'équation

4x2 + y2 = p

admet un nombre impair de solutions positives (x, y).

Algorithme

Quelques variables sont nécessaires :

Après, pour chaque nombre n restant :

Ensuite, on applique un crible d'Ératosthène modifié : pour chaque nombre premier p supérieur à 7, on supprime tous les multiples de p².

Enfin, on place les nombres restants dans la liste des nombres premiers.

Complexité

Avec cet algorithme, la recherche des nombres premiers inférieurs à N a une complexité en temps en o(N) et une complexité en mémoire en O(Nα) avec α < 1.

Références

Bibliographie

Lien externe

(en) Primegen, par D. J. Bernstein (le crible d'Atkin optimisé en C)