n! means n × (n − 1) × ... × 3 × 2 × 1
For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800, and the sum of the digits in the number 10! is 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27.
Find the sum of the digits in the number 100!
In [1]:
import operator
In [2]:
def foo(n):
return reduce((lambda x, y: int(x) + int(y)), str(reduce(operator.mul, range(1, 100 + 1))))
In [3]:
n = 100
%timeit foo(n)
foo(n)
Out[3]: