Да, я делал предвычисление по КТО, но обратный элемент не использовал.
Не применяя других идей, а просто расписав эту же идею аккуратнее, снизил время счёта юнита с 2 минут 54 секунд до 1 минуты 57 секунд.
Чтобы убедиться что программа работает правильно, в качестве постоянных остатков взял те которые подходят к максимальной центральной 15-ке в интервале

.
Код:
{kort=117201182126413058067773;forprime(p=2,41,
print1("rost",p,"=",kort%p,"; "));}
По этой команде PARI мне сразу напечатал 13 постоянных разрешённых остатков:
Код:
rost2=1; rost3=2; rost5=3; rost7=1; rost11=5; rost13=2;
rost17=15; rost19=7; rost23=22; rost29=16; rost31=21; rost37=13; rost41=24;
Вставил их в программу и запустил. Время счёта для этого юнита получилось такое же и все матрёшки, начиная с 9-ки, комп нашёл:
Код:
117201182126413058067833: [0,18,24,48,54,60,84,90,108]
117201182126413058067803: [0,30,48,54,78,84,90,114,120,138,168]
117201182126413058067791: [0,12,42,60,66,90,96,102,126,132,150,180,192]
117201182126413058067773: [0,18,30,60,78,84,108,114,120,144,150,168,198,210,228]
117201182126413058067773: [0,18,30,60,78,84,108,114,120,144,150,168,198,210,228]
8191
1min, 57,327 ms