Am 18.02.2013 20:13, schrieb John Immarino:
> I coded a Python solution for Problem #14 on the Project Euler website. I was
> very surprised to find that it took 107 sec. to run even though it's a pretty
> simple program. I also coded an equivalent solution for the problem in the
> old MSDOS basic. (That's the 16 bit app of 1980s vintage.) It ran in 56 sec.
> Is there a flaw in my coding, or is Python really this slow in this
> particular application. MSDOS Basic usually runs at a snails pace compared to
> Python.
> max=0
> m=0
> while m<=1000000:
> m+=1
> count=0
> n=m
> while n!=1:
> count+=1
> if n%2==0:
> n=n//2
> else:
> n=3*n+1
> if count>max:
> max=count
> num=m
> print(num,max)
I cannot compare my timings with basic but python 2.7.3 and python 3.2.3
are both equally slow hier (~50 sec).
pypy is a lot faster (only some old version 1.7.0, current versions
should be faster still) with about 5 sec.
The following C-Program:
#include <stdio.h>
int main(void) {
int max = 0;
int m = 0;
long int n;
int count;
int num;
while(m<=1000000) {
m++;
n = m;
count = 0;
while(n != 1) {
count++;
if(n % 2 == 0) {
n = n / 2;
}
else {
n = n*3 + 1;
}
}
if(count > max) {
max = count;
num = m;
}
}
printf("%d, %d\n", num, max);
}
Does the job in just under 1 sec.
Greetings
Alexander
--
http://mail.python.org/mailman/listinfo/python-list