Sito Atkina

algorytm wyszukiwania liczb pierwszych

Sito Atkina (nazywane też sitem Atkina-Bernsteina) – algorytm autorstwa A.O.L. Atkina i D.J. Bernsteina służący do wyszukiwania liczb pierwszych w dużych przedziałach. Metoda działa podobnie, jak sito Eratostenesa, jednak dzięki wykorzystaniu bardziej wyrafinowanej teorii jest szybsza i wymaga znacznie mniej pamięci.

Sito Atkina
Struktura danych

Tablica, lista

Złożoność
Czasowa

Pamięciowa

Opis działania edytuj

Algorytm pomija liczby, których reszta z dzielenia przez 60 jest podzielna przez 2, 3 lub 5, ponieważ liczby takie same są podzielne odpowiednio przez 2, 3, lub 5.

Wszystkie liczby n z resztą z dzielenia przez 60 wynoszącą 1, 13, 17, 29, 37, 41, 49 lub 53 mają resztę z dzielenia przez 4 równą 1. Te liczby są pierwsze wtedy i tylko wtedy, gdy liczba rozwiązań wielomianu 4x2 + y2 = n jest nieparzysta i niepodzielna przez kwadraty liczb całkowitych.

Wszystkie liczby n z resztą z dzielenia przez 60 wynoszącą 7, 19, 31 lub 43 mają resztę z dzielenia przez 6 równą 1. Te liczby są pierwsze wtedy i tylko wtedy, gdy liczba rozwiązań wielomianu 3x2 + y2 = n jest nieparzysta i niepodzielna przez kwadraty liczb całkowitych.

Wszystkie liczby n z resztą z dzielenia przez 60 wynoszącą 11, 23, 47 lub 59 mają resztę z dzielenia przez 12 równą 11. Te liczby są pierwsze wtedy i tylko wtedy, gdy liczba rozwiązań wielomianu 3x2 - y2 = n jest nieparzysta i niepodzielna przez kwadraty liczb całkowitych.

Żadna z potencjalnych liczb pierwszych nie jest podzielna przez liczby 2, 3 i 5, więc nie może być podzielna również przez ich kwadraty. Dlatego sprawdzenie czy rozwiązania wielomianów nie jest podzielne przez kwadraty liczb całkowitych nie zawiera 22, 32 i 52.

Złożoność obliczeniowa edytuj

Sito Atkina-Bernsteina znajduje (wypisuje) wszystkie liczby pierwsze mniejsze niż N w czasie O(N) wykorzystując pamięć O(N1/2/log N).

Literatura edytuj

Linki zewnętrzne edytuj