Sito Atkina

Sito Atkina
Struktura danych

Tablica, lista

Złożoność
Czasowa

Pamięciowa

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.

Opis działania

Algorytm całkowicie pomija wszystkie liczby podzielne przez 2, 3 lub 5. Wszystkie liczby z parzystą resztą z dzielenia przez 60 są podzielne przez 2 i nie są pierwsze. Wszystkie liczby z resztą z dzielenia przez 60 podzielną przez 3 są także podzielne przez 3 i nie są pierwsze. Wszystkie liczby z resztą z dzielenia przez 60 podzielną przez 5 są także podzielne przez 5 i nie są pierwsze. Wszystkie te reszty są pomijane.

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

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

Zobacz też

Literatura

Linki zewnętrzne