Обещал прокомментировать. Комментирую.
Потому что выбирать одну-две группы паттернов и один из 10! вариантов в них ради сокращения программ хотя бы до сотни тысяч — это проверка по вершинам, которая результата не принесла.
Проверка "по вершинам", по-видимому, действительно не самый эффективный подход (хотя и тут может повезти).
Но разве то, что описано выше, это "по вершинам". Это "плоскогорье".
И действовать, IMYO, надо именно так. Мы ведь не единственную цепочку ищем.
Тут уже упоминалась
47-страничная таблица (на самом деле там больше страниц, рядом ссылка на продолжение). Так вот, большинство результатов в этой таблице найдены поиском всего по ОДНОМУ паттерну.
Всякий раз я сначала высчитывал эмпирически примерное число проверок для нахождения требуемой цепочки. И если оно не превышало
запускал один паттерн. И всякий успешно.
И только при более долгом поиске начинал параллелить.
В случае отыскания цепочек из чисел по 36 делителей параллелить придется (без этого реально отыскать, разве что, цепочку из 12 чисел).
Полагаю, разумно разбить поиск на две части. Сначала искать цепочку из 13 чисел (12 найдутся по ходу). А в случае не слишком трудозатратного успеха искать 15 чисел (14 по ходу). Для 13 чисел могу предоставить 384 паттерна, которые кажутся мне наиболее перспективными. Уверен такой ширины захвата достаточно.
Цепочка из 20 чисел по 48 делителей, весьма вероятно, найдется в ближайшее время (даже если Лев не "раскошелится" хотя бы на один поток
). Только за сегодня нашел еще две цепочки по 19 чисел.