Biorąc pod uwagę nieujemną liczbę całkowitą N
, wyprowadza najmniejszą nieparzystą liczbę całkowitą dodatnią, która jest silnym pseudopierwszym znakiem dla wszystkich pierwszychN
liczb .
Jest to sekwencja OEIS A014233 .
Przypadki testowe (z jednym indeksem)
1 2047
2 1373653
3 25326001
4 3215031751
5 2152302898747
6 3474749660383
7 341550071728321
8 341550071728321
9 3825123056546413051
10 3825123056546413051
11 3825123056546413051
12 318665857834031151167461
13 3317044064679887385961981
Przypadki testowe dla N > 13
nie są dostępne, ponieważ te wartości nie zostały jeszcze znalezione. Jeśli uda Ci się znaleźć kolejne terminy w sekwencji, koniecznie prześlij je do OEIS!
Zasady
- Możesz wybrać
N
wartość zerową lub jedną indeksowaną. - Dopuszczalne jest, aby twoje rozwiązanie działało tylko dla wartości reprezentatywnych w zakresie liczb całkowitych twojego języka (tak więc
N = 12
dla niepodpisanych liczb całkowitych 64-bitowych), ale twoje rozwiązanie musi teoretycznie działać dla każdego wejścia, przy założeniu, że twój język obsługuje liczby całkowite o dowolnej długości.
tło
Każda dodatnia parzysta liczba całkowita x
może być zapisana w postaci, w x = d*2^s
której d
jest nieparzysta. d
i s
można go obliczyć przez wielokrotne dzielenie n
przez 2, aż iloraz nie będzie już podzielny przez 2. d
to ostateczny iloraz i s
jest to liczba razy 2 dzielenian
.
Jeśli liczba całkowita dodatnia n
jest liczbą pierwszą, to małe twierdzenie Fermata głosi:
W dowolnym polu skończonym Z/pZ
(gdzie p
jest liczba pierwsza) jedynymi pierwiastkami kwadratowymi 1
są 1
i -1
(lub równoważnie 1
i p-1
).
Możemy użyć tych trzech faktów, aby udowodnić, że jedno z dwóch poniższych stwierdzeń musi być prawdziwe dla liczby pierwszej n
(gdzie d*2^s = n-1
i gdzie r
jest liczba całkowita [0, s)
):
Test pierwszeństwa Millera-Rabina działa na zasadzie przeciwstawności powyższego twierdzenia: jeśli istnieje podstawa a
taka, że oba powyższe warunki są fałszywe, n
to nie jest pierwsza. Ta baza a
nazywa się świadkiem .
Teraz testowanie każdej bazy [1, n)
byłoby zbyt drogie w obliczeniach dla dużych n
. Istnieje probabilistyczny wariant testu Millera-Rabina, który testuje tylko niektóre losowo wybrane zasady w polu skończonym. Okazało się jednak, że a
wystarczające jest testowanie tylko podstawowych zasad, dlatego test można przeprowadzić w sposób skuteczny i deterministyczny. W rzeczywistości nie wszystkie podstawowe zasady muszą zostać przetestowane - wymagana jest tylko pewna liczba, a liczba ta zależy od wielkości testowanej wartości pierwotności.
Jeśli przetestowana zostanie niewystarczająca liczba zasad podstawowych, test może dać fałszywie dodatnie - nieparzyste liczby całkowite, w których test nie udowodni ich złożoności. W szczególności, jeśli baza a
nie udowodni złożoności nieparzystej liczby złożonej, liczba ta nazywana jest silnym pseudopierwszym znakiem bazy a
. Wyzwanie polega na znalezieniu nieparzystych liczb zespolonych, które są silnymi pseudopierwszymi dla wszystkich zasad mniejszych lub równych N
th pierwszej liczbie podstawowej (co jest równoważne z twierdzeniem, że są one silnymi pseudopierwszymi dla wszystkich baz pierwszych mniejszych lub równych N
th pierwszej liczbie pierwszej) .