Sum of the factorial of the digits of a number - wierd behaviour

SiWi wimmersimon at googlemail.com
Wed Dec 9 12:36:34 EST 2009


Dear python community,
I've got a wierd problem and I hope you can help me out at it.
I wrote the following code to find the Sum of the factorial of the
digits of a number (this is for Project Euler 74):

def fac(n):
    x=1
    for i in range(2,n+1):
        x*=i
    return x

t=tuple(fac(n) for n in range(1,10))

def decimals(x):
    i=1
    d=[]
    while x>0:
        d.append(x%10)
        x=x/10
    return d

def sumfac(x):
    return sum(t[n-1] for n in decimals(x))

The problem is that i get the following results, for which I can't see
any reason:
sumfac(145)->145 (1!+4!+5!=1 + 24 +120 = 145) - ok
sumfac(1454)-> 169 - ok
sumfac(45362) -> 872 - ok
sumfac(363600) -> 727212 - wrong, should be1454

Greetings,
SiWi.



More information about the Python-list mailing list