Project Euler Problem 020

http://projecteuler.net/index.php?section=problems&id=20

n! means n  (n  1)  ...  3  2  1
Find the sum of the digits in the number 100!


100の階乗の各桁の合計。非常にてきとう。

import operator
import datetime

def sum_of_digits(n):
    result = 0
    while n:
        result += n % 10
        n /= 10
    return result


def factorial(n):
    return reduce(operator.mul, xrange(1, n+1))


begin = datetime.datetime.now()

print sum_of_digits(factorial(100))

end   = datetime.datetime.now()

print end - begin

答え: 648
実行時間: 0.001527秒くらい