Очень эффективной оказалась эвристика -- строить решение для N! только из делителей N!
Так как
и все три числа делят 28!, найдём решение для 326876 состоящее только из делителей 28!, продолжим его до 342144 (также используя только делители 28!), полученную последовательность продолжаем до 1651104000 (опять используя только делители 28!), выполняем три завершающих умножения и получаем решение для 28! состоящее только из делителей 28!
1, 2, 4, 8, 64, 72, 70, 4900, 5184, 331776, 326876
Итак, от найденных мной 67 решений для числа 326876 в 10 шагов (состоящих только из чётных чисел) выполняю первый этап по вашему сценарию: достраиваю до числа
342144:
Код:
found 3 solutions for 342144 in 12 steps
1,2,4,8,64,72,70,5184,4900,331776,326876,10368,342144
1,2,4,8,64,72,70,5184,4900,331776,326876,336960,342144
1,2,4,8,64,72,70,5184,4900,331776,326876,66,342144
[ограничение Non-Factor не действует здесь]
Сейчас пойду выполнять от найденных решений второй этап - достраивание до числа 1651104000.
Получится?
А почему же не получится?
Вот оно:
Код:
found 1 solutions for 1651104000 in 13 steps
1,2,4,8,64,72,70,5184,4900,331776,326876,336960,342144,1651104000
Вывод: совершенно напрасно вы морочили голову с обрезкой Non-Factor (да ещё по делителям 28!). Всё прекрасно получается с одним ограничением: только чётные числа. Решений очень мало даже на первом этапе - всего 67.
-- Ср май 01, 2013 17:34:16 --Обалдеть
Программа поиска решений от вашей последовательности для числа
326876 закончила работу!
Программа работала всего 39 мин. 15 сек. Фантастика!
Код:
found 9 solutions for 304888344611713860501504000000 in 16 steps
1,2,4,8,64,72,70,4900,5184,331776,326876,336960,1651104000,342144,111838662144,184657262420606976000,304888344611713860501504000000
1,2,4,8,64,72,70,4900,5184,331776,326876,336960,1651104000,342144,2726144418816000000,111838662144,304888344611713860501504000000
1,2,4,8,64,72,70,4900,5184,331776,326876,336960,1651104000,342144,2726144418816000000,891111183044898816000000,304888344611713860501504000000
1,2,4,8,64,72,70,4900,5184,331776,326876,336960,1651104000,342144,2726144418816000000,932733956031381504000000,304888344611713860501504000000
1,2,4,8,64,72,70,4900,5184,331776,326876,336960,1651104000,342144,539706271104000,184657262420606976000,304888344611713860501504000000
1,2,4,8,64,72,70,4900,5184,331776,326876,336960,1651104000,342144,539706271104000,564915326976000,304888344611713860501504000000
1,2,4,8,64,72,70,4900,5184,331776,326876,336960,1651104000,342144,539706271104000,891111183044898816000000,304888344611713860501504000000
1,2,4,8,64,72,70,4900,5184,331776,326876,336960,1651104000,342144,564915326976000,184657262420606976000,304888344611713860501504000000
1,2,4,8,64,72,70,4900,5184,331776,326876,336960,1651104000,342144,564915326976000,932733956031381504000000,304888344611713860501504000000
Вот! Сразу в лоб от числа
326876 достроилось до 28!
И можно точно так же достроить, начиная от всех 67 решений для числа
326876, только в этом случает программа будет намного дольше выполняться.
P.S. Интересно: в этих решениях сначала найдено число 1651104000, а потом число 342144.