Если задано неотрицательное целое число 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первому числу) ,

