Hi everyone,

The last few days i've been learning python and have been doing this by trying to solve problems for a programming competition.
One particular problem is bugging me. I have already solved it but my solution does not compute in the set time-condition. I know
for a fact that this particular problem is solvable in the time-limit using Python, so i was wondering if my solution is maybe inefficitient code-wise.
If my code can't be optimized for speed any more i must be missing something and should labor hard to find a new algorithm ;-).

The problem is to compute the number of trailing zero's in factorials (n! = 1*2*3*4*.......*n). with n <= 1000000000

My solution is as follows (a = times to read a number (b) to process) :

---------------------------------------------------------------------------

a = input()
for i in range(a):
    lst = (5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625)
    ans = 0
    b = input()
    for i in lst:
        if i <= b:
            ans += b//i
    print ans

----------------------------------------------------------------------------

Please, if you have suggestions to improve the speed of this algorithm give an argumentation as to why a certain something is faster.
That would allow me to learn to program faster algorithms in Python al together instead of just in this problem.

Kind regards - Geofram

P.s. I know python is probably not the best language for these kinds of problems (I can code it in C or C++), it just bugs me that it's possible
and my solution is failing...  ;-)
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to