Сделал грубую оценку - сколько простых выгодно.
Параметры модели:
Код:
Стоимость isprime 1
Стоимость factor 100
P(p) 0.06
P(not p) 0.3
Варьировал "Стоимость factor". получилось так:
Код:
1:100 - 2p
1:1000 - 2p
1:10000 - 3p
1:100000 - 4p
1:1000000 - 5p
Модель грубая: на каждом шаге считалось, что уровень фильтрации равен вероятности. Простые проверяются вначале, конечно.
Но показательно.
Не знаю, какое отношение стоимости проверки на простое к стоимости факторизации будет правильно выбрать...
-- 17.10.2025, 14:03 --Или так, если P(not p) изменить на близкую к вероятности

:
Код:
Стоимость isprime 1
Стоимость factor 1000000
P(p) 0.06
P(not p) 0.23
1:100 - 2p
1:1000 - 3p
1:10000 - 3p
1:100000 - 5p
1:1000000 - 6p
-- 17.10.2025, 14:53 --Запустил для поиска 0-0, 1-0, 2-0. Сразу нашлись варианты 2-0-14-5(8).
Минимальное количество необязательных простых в квадрате - 8 штук.
И у всех таких паттернов будет одинаковый lcm.
(расчет)
Всего надо 21 квадрат.
Обязательные простые от 5 до 19 дают минус 6 квадратов (по одному на одно простое - не больше).
Расстановка двоек даёт минус 4 квадрата (обязательно должно быть

).
Расстановка троек даёт минус 3 квадрата (обязательно должно быть

).

вместо необязательного простого в квадрате выгодно, так как

То есть условие "(8)" (расставляем восемь квадратов) можно "прибивать гвоздями" - искать только среди таких.
А вот условие "количество pq равно ноль" не нужно прибивать гвоздями. Нам нужно условие "количество pqr" - максимально. И только уже среди таких минимизируем количество

(в пользу

).
Паттерн с нулем простых будет выгоден только для очень медленного isprime, можно не рассматривать.
Итого оптимальные паттерны (для дальнейшего исследования):
A-B-C-D(8), где
А - от 2 до 5, наверное. В зависимости скорости работы проверки на простые по сравнению с факторизацией. Можно и 6 - 7 посмотреть.
C - максимальное (для каждого фиксированного A).
B и D - в общем-то любые из оставшихся. Но если будет выбор, лучше чтобы B поменьше, D - побольше.