А что, изменение системы счисления как-то облегчает проверку на простоту? За счет чего?
Не то чтобы облегчает ... Но если вдруг например можно перевести число в систему с основанием 210 быстрее чем поделить то же самое число на числа 2, 3, 5, 7 - то смысл будет, т.к. в системе с основанием 210 (ну или 30) по младшей цифре можно точно установить что число составное. Как и в двоичной для числа 2. Аналогичную процедуру можно проделать и для всех первых сотен простых чисел, делить проверяемое число не на каждое простое, а на некое их произведение и проверять остаток (младшую цифру в другой системе счисления) по таблицам. Это вполне будет работать для чисел до
или даже до
, для которых всё деление уложится в одну команду процессора (можно даже и для чисел до
, где нужно от 4-х до 8-ми команд деления процессора). Другое дело, что даже для чисел до
(не говоря уж о ещё бОльших) проверка на первые тысячи простых (из более чем 200 млн) занимает доли процентов общего времени и никакого практически заметного эффекта такое ускорение не даст.
kthxbyeТак что идея, с некоторыми доработками, вполне рабочая. Но бесполезная на практике.
PS. Если кому надо, то я могу и теоретически оценить максимальный выигрыш, и даже проверить его на практике. Но сразу говорю, это будут какие-то доли процентов для достаточно больших чисел. И полезно это может быть лишь для чисел до скажем миллиона (или миллиарда), для которых общее время проверки на простоту и так измеряется в микросекундах (или в миллисекундах) и уменьшать его ещё дальше просто нет смысла.