Sito Atkina
Struktura danych | |
---|---|
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 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.
Sito Atkina-Bernsteina znajduje (wypisuje) wszystkie liczby pierwsze mniejsze niż N w czasie O(N) wykorzystując pamięć O(N1/2/log N).
Literatura
- A.O.L. Atkin, D.J. Bernstein, Prime Sieves Using Binary Quadratic Forms, 1999
Linki zewnętrzne
- Artykuł opisujący algorytm oraz jego implementację. edu.i-lo.tarnow.pl. [zarchiwizowane z tego adresu (2015-07-16)].