Может, если использовать кроме десятичной системы также другие, можно добиться ещё большего?
Можно, и это даже широко используется в программах решета. Например в системе с основанием 30 лишь 8 младших цифр допустимы для простых чисел (больших 30). В системе с основанием 30030 допустимых младших цифр 5760. В системе с основанием
![$p_1^a p_2^b p_3^c p_4^d \ldots$ $p_1^a p_2^b p_3^c p_4^d \ldots$](https://dxdy-01.korotkov.co.uk/f/0/d/9/0d9f26b78eb01a64043e20096e94bb3482.png)
, где
![$p_i$ $p_i$](https://dxdy-01.korotkov.co.uk/f/0/d/1/0d19b0a4827a28ecffa01dfedf5f5f2c82.png)
простые числа, младших допустимых цифр будет
![$a(p_1-1)b(p_2-1)c(p_3-1)d(p_4-1)\ldots$ $a(p_1-1)b(p_2-1)c(p_3-1)d(p_4-1)\ldots$](https://dxdy-04.korotkov.co.uk/f/f/d/4/fd492e3b33cebdd2e15977c398d4e85482.png)
. Конечно неединичные коэффициенты
![$a,b,c,d,\ldots$ $a,b,c,d,\ldots$](https://dxdy-01.korotkov.co.uk/f/0/f/0/0f06d1a79d52d37821239b7a1365a8e582.png)
никакого выигрыша не дают, привёл для общности.
В программах решета это используется чтобы уменьшить количество проходов по вычёркиванию малых простых из массива правильной его инициализацией с уже вычеркнутыми малыми простыми. И выигрыш от каждого следующего простого
![$\frac{p-1}{p}$ $\frac{p-1}{p}$](https://dxdy-03.korotkov.co.uk/f/2/b/d/2bd35cfb6e9fa6e08aeb11cd3bbee44882.png)
быстро уменьшается и обычно ограничиваются первым (полу)десятком простых.
А в программах не решета это можно использовать для уменьшения количества делений - если делить не на каждое простое, а на произведения их пары-тройки (или больше) и проверять остаток по списку запрещённых для этих пар-троек. Деление уж очень медленная операция и замена её даже на десяток других всё равно выгодна. Правда
практического смысла это не имеет: пробные деления занимают обычно ничтожно малую часть времени, а всё остальное тратится на возведение в степень по модулю (или другие операции).
-- 26.12.2023, 19:39 --Да, ещё интересный вариант использования: когда стоит задача не проверки числа на простоту, а генерации простого числа, то можно произвольно выбрать любой ненулевой остаток по модулю нескольких десятков простых (фактически ненулевую младшую цифру по основанию каждого простого числа) и по китайской теореме об остатках получить сразу хорошего кандидата в простое число, которого конечно всё равно придётся допроверить каким-нибудь методом. Например взяв первые 30 простых можно легко получить кандидата в простое до 3.161e46 (произведение первых 30 простых).
-- 26.12.2023, 19:51 --И опять же, практического смысла в этом снова слишком мало: для чисел около 3e46 реально простым окажется лишь каждое
![$\ln(3\cdot10^{46})\approx 84$ $\ln(3\cdot10^{46})\approx 84$](https://dxdy-01.korotkov.co.uk/f/4/7/f/47fa27c115ae695610f7b2fcec5cc88182.png)
-е, а кандидатом в простые будет каждое 8.713-е. И думаю проще будет банально поделить кандидата на эти 30 простых чем заморачиваться с вычислением китайской теоремы об остатках. Хотя для первых 6-8 простых (праймориалы примерно 3e4-9.7e6) можно и взять с правильными остатками.