А теперь вопрос: а сколько кругов надо сделать чтобы найти решение? Про М48n21 не знаю, а вот для M12n15 прикинуть можно:
первый поиск проверил не менее 66387422053662391209161093722597723545 / 440538835723387181869888800 = 1.5е11 кандидатов для каждого из 46080 паттерна;
второй (или какой он там был по счёту) поиск проверил 80215613469168729088982885848674841 / 321796081609486619335200 = 2.45e11 кандидатов для каждого из 46080 паттерна;
итого было проверено не менее 46080*(1.5e11+2.45e11)=1.8e16 кандидатов (на самом деле в несколько раз больше, были и другие поиски).
Если ищем М48n21 то количество проверок нужно сравнивать не с количеством проверок для пентадекатлона, а с количеством проверок, выполненных уважаемым
VAL для поиска М48n20. Или с количеством проверок при неудачном поиске М48n21.
Пусть таких проверок было

(M - много

)
Есть обоснованная надежда, что если выполнить такое же по порядку величины количество проверок, но не на 50 шаблонах, а на миллионах "примерно одинаково хороших" шаблонов, то М48n21 и найдётся.
Обоснование следующее.
Пока делаем

проверок на миллионе (для определенности) шаблонов без увеличения порядка

в районе

(то есть

- порядка миллиона или нескольких миллионов).
поверка по 50 шаблонам унесет

до

, а LCM тоже огромный.
А падение вероятности найти цепочку в одной проверке с ростом

, как

, убивает всю надежду.
-- 01.10.2025, 21:35 --Если хотите, могу сделать такую программу, на базе хоть 3-х, хоть 9-ти (ожидаю что он будет выгоднее) цифирного паттерна M48n21, но только одного, не десятков тысяч штук конечно, т.е. основные простые перераставлять не будет, только дополнительные. Даже самому интересно какова будет её скорость, насколько меньше той что без перебора простых в квадратах ...
Перестановка дополнительных (необязательных) простых даёт уже треть миллиона. И это хорошо.
И хорошо бы сразу добавить

в набор необязательных простых для квадратов. Это несильно увеличит LCM, а количество паттернов увеличит в 10 раз, то есть до

миллиона.
"на базе хоть 3-х, хоть 9-ти (ожидаю что он будет выгоднее) цифирного паттерна" - не очень понял термин
Паттерн должен минимизировать количество неизвестных

, потом количество неизвестных

и т.д.
Ещё желательно сделать такое:
1. Проверку позиций от 1 до 19 проводить в порядке вероятности быстро найти негативный результат. Если результат негативный - другие позиции не проверять.
2. Проверку позиций 0 и 20 проводить, только если в позициях от 1 до 19 - успех.
Это позволит найти (и улучшить) цепочки длиной 19 и 20.
-- 01.10.2025, 21:40 --Скорость перебора будет примерно такой же, если не учитывать увеличение времени на факторизацию с ростом

.
UPD: или даже может оказаться меньше, с учётом накладных расходов, про которые Вы написали выше.
А вот кандидатов такое должно находить больше за единицу времени.
-- 01.10.2025, 21:48 --И хорошо бы сразу добавить

в набор необязательных простых для квадратов. Это несильно увеличит LCM, а количество паттернов увеличит в 10 раз, то есть до

миллиона.
Тут дополнение

можно ставить на место любого необязательного простого в квадрате. Но поиск вести по всем паттернам до фиксированного задаваемого значения

. Тогда увеличение LCM роли не играет. Ну, по некоторым вариантам паттернов проверок будет меньше, чем по другим. Но вероятность найти цепочку в каждой проверке будет примерно одинакова.
-- 01.10.2025, 21:57 --И есть простой критерий, что метода сработала.
М48n21 найдётся после нескольких десятков М48n20.
Если на одном компе в 1..4..8 потоков за 10-15 дней будет находиться хотя бы одна цепочка М48n20, то можно собирать мощности заинтересованных людей, чтобы найти М48n21 за разумное время.
А если нет, то - нет.