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