Python 3.3 vs. MSDOS Basic
Alexander Blinne
news at blinne.net
Mon Feb 18 19:11:45 EST 2013
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
More information about the Python-list
mailing list