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
[email protected]
http://mail.python.org/mailman/listinfo/bangpypers