Враховуючи невід'ємне ціле число N, виведіть найменше непарне додатне ціле число, яке є сильним псевдокримом для всіх перших Nпростих основ.
Це послідовність OEIS A014233 .
Випробування (одноіндексовані)
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
Тестові приклади для N > 13програми недоступні, оскільки ці значення ще не знайдені. Якщо вам вдасться знайти наступний (-и) термін (-и) в такій послідовності, не забудьте подати їх до OEIS!
Правила
- Ви можете прийняти
Nяк нульове або індексоване значення. - Для вашого рішення прийнятно працювати лише для значень, представлених у цілому діапазоні вашої мови (так, як
N = 12для непідписаних 64-бітових цілих чисел), але ваше рішення теоретично повинно працювати для будь-якого введення з припущенням, що ваша мова підтримує цілі числа довільної довжини.
Фон
Будь-яке додатне парне ціле число xможе бути записане у формі, x = d*2^sде dнепарне. dі sможе бути обчислена багаторазовим діленням nна 2, поки коефіцієнт більше не ділиться на 2. dЦе кінцевий коефіцієнт, і sце число разів 2 ділення n.
Якщо додатне ціле число nє простим, то мала теорема Ферма говорить:
У будь-якому кінцевому полі Z/pZ (де pє простим), єдиними квадратними коренями 1є 1і -1(або, що еквівалентно, 1і p-1).
Ми можемо використовувати ці три факти, щоб довести, що одне з наступних двох тверджень повинно бути істинним для простого числа n(де d*2^s = n-1і rє деяке ціле число [0, s)):
Тест на простоту Міллера-Рабіна працює шляхом тестування контрапозиции зазначеного вище вимоги: якщо є підстави aтаким чином, що обидва із зазначених вище умов , є помилковими, то nне є простим. Цю базу aназивають свідком .
Тепер, тестування кожної бази в [1, n)було б надзвичайно дорогим для обчислення часом для великих n. Існує ймовірнісний варіант тесту Міллера-Рабіна, який перевіряє лише деякі випадко-обрані бази в кінцевому полі. Однак було виявлено, що aдостатньо протестувати лише основні основи, і, таким чином, випробування можна виконати ефективно та детерміновано. Насправді, не всі основні бази потрібно перевірити - потрібно лише певне число, і це число залежить від розміру тестованого значення для первинності.
Якщо тестується недостатня кількість простих основ, тест може створити помилкові додатні - непарні складені цілі числа, коли тест не зможе довести їх сумісність. Зокрема, якщо базі aне вдасться довести сукупність непарного складеного числа, це число називається сильним псевдокримом до основи a. Ця задача полягає у знаходженні непарних складених чисел, які є сильними пседопріомами для всіх баз менше або дорівнюють Nпершому простому числу (що еквівалентно твердженню, що вони є сильними псевдокриміналами для всіх простих основ, менших або рівних Nпершому першому номеру) .

