Below given is solution to a puzzle( http://projecteuler.net/index.php?section=problems&id=14) in python and c
Python: import time startT=time.time() maxlen=0 longest=0 for i in xrange(1,1000000): last=i cnt=0 while(last <> 1): cnt=cnt+1 if(last%2==0): last=last/2 else: last=3*last+1 if(cnt>maxlen): maxlen=cnt longest=i print "time taken (sec) : ",time.time()-startT print maxlen,longest Python Output: time taken (sec) : 99.4702298641 524 837799 C: #include <stdio.h> int main(int argc, char **argv) { int longest = 0; int maxlen = 0; int i; unsigned long last; for (i = 1; i <= 1000000; i++) { last = i; int cnt = 0; while (last != 1) { cnt++; if (last % 2 == 0) last = last / 2; else last = 3 * last + 1; } if (cnt > maxlen) { maxlen = cnt; longest = i; } } printf("longest: %d (%d)\n", longest, maxlen); return 0; } My doubt is that in C the result comes in 1-2 sec but in python it takes 99 secs.I don't expect python to be as fast as c but i cant understand why it should be so slow in python.i'm new to python so if there is better way to do the above prog in python please suggest. _______________________________________________ BangPypers mailing list BangPypers@python.org http://mail.python.org/mailman/listinfo/bangpypers