Может, если использовать кроме десятичной системы также другие, можно добиться ещё большего?
Можно, и это даже широко используется в программах решета. Например в системе с основанием 30 лишь 8 младших цифр допустимы для простых чисел (больших 30). В системе с основанием 30030 допустимых младших цифр 5760. В системе с основанием
, где
простые числа, младших допустимых цифр будет
. Конечно неединичные коэффициенты
никакого выигрыша не дают, привёл для общности.
В программах решета это используется чтобы уменьшить количество проходов по вычёркиванию малых простых из массива правильной его инициализацией с уже вычеркнутыми малыми простыми. И выигрыш от каждого следующего простого
быстро уменьшается и обычно ограничиваются первым (полу)десятком простых.
А в программах не решета это можно использовать для уменьшения количества делений - если делить не на каждое простое, а на произведения их пары-тройки (или больше) и проверять остаток по списку запрещённых для этих пар-троек. Деление уж очень медленная операция и замена её даже на десяток других всё равно выгодна. Правда
практического смысла это не имеет: пробные деления занимают обычно ничтожно малую часть времени, а всё остальное тратится на возведение в степень по модулю (или другие операции).
-- 26.12.2023, 19:39 --Да, ещё интересный вариант использования: когда стоит задача не проверки числа на простоту, а генерации простого числа, то можно произвольно выбрать любой ненулевой остаток по модулю нескольких десятков простых (фактически ненулевую младшую цифру по основанию каждого простого числа) и по китайской теореме об остатках получить сразу хорошего кандидата в простое число, которого конечно всё равно придётся допроверить каким-нибудь методом. Например взяв первые 30 простых можно легко получить кандидата в простое до 3.161e46 (произведение первых 30 простых).
-- 26.12.2023, 19:51 --И опять же, практического смысла в этом снова слишком мало: для чисел около 3e46 реально простым окажется лишь каждое
-е, а кандидатом в простые будет каждое 8.713-е. И думаю проще будет банально поделить кандидата на эти 30 простых чем заморачиваться с вычислением китайской теоремы об остатках. Хотя для первых 6-8 простых (праймориалы примерно 3e4-9.7e6) можно и взять с правильными остатками.