Sum of the factorial of the digits of a number - wierd behaviour
SiWi
wimmersimon at googlemail.com
Wed Dec 9 12:39:51 EST 2009
On Dec 9, 6:36 pm, SiWi <wimmersi... at googlemail.com> wrote:
> 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.
Oops, found it myself. You can ignote the message above.
More information about the Python-list
mailing list