Не знаю, помогает ли это, но>
проверить на минимум A, B, C
A!+B!+C! = (min(A,B,C)!)*(1+((min+1..restfact1)!)+((min+1..restfact2)!))
Таким образом, вы можете рассчитать минимальный факториал и затем использовать его для расчета других.
С другой стороны, вы можете рассчитать только максимальный факториал и сохранить его результаты в массиве, а также повторно использовать предварительно рассчитанные значения для нахождения факториала меньших чисел
Другое значение состоит в том, что минимальное число может быть уменьшено
restfact1 * restfact2 = ((min-1)!)*(1+((min+1..restfact1)!)+((min+1..restfact2)!))