Существует два ярлыка производительности, которые вы можете использовать для любой выбранной вами реализации.
- Отрезать любые нули от чисел.
- Если число делится на 5 ^n, разделите его на 10 ^ n.
таким образом,
16*15*14*13*12*11*10*9*8*7*6*5*4*3*2 = 20,922,789,888,000
//-->
16*1.5*14*13*12*11*1*9*8*7*6*0.5*4*3*2 = 20,922,789,888 //Sum of 63
Кроме того, кажется, что должен быть какой-то алгоритм, не возвращаясь к вычислению всего этогоиз.Переходя к 18 !, суммы цифр:
2,6,6,3,9,9,9,27,27,36,27,27,45,45,63,63,63
//the sums of the resulting digits are:
2,6,6,3,9,9,9,9,9,9,9,9,9,9,9,9,9
и, в частности, сумма цифр 1500!равно 16749 (сумма цифр 27)