Here's the problem:
--- CODE ---
i=j=0
while i<1000000:
while j<50000:
n=ints[i%len(ints)] + ints[j%len(ints)] #Add
n=ints[j%len(ints)] - ints[i%len(ints)] #Subtract
n=ints[i%len(ints)] * ints[j%len(ints)] #Multiply
n=ints[j%len(ints)] / ints[i%len(ints)] #Divide
n=ints[i%len(ints)]**exp[j%len(exp)] #Exponents
n=abs(cmath.sqrt(pos[i%len(pos)])) #Square roots
n=abs(cmath.sin(ints[j%len(ints)])) #Sines
j=j+1 #Iterate
i=i+1 #Iterate
--- CODE ---
You never reset J, so this program will only do the tests 50000 times, then
it will find false 9999999 more times, which is fast.
In your c++ version, the loop counter is reset every time.
--- CODE ---
for(int i=0; i<1000000; i++) {
for(int j=0; j<50000; j++) { //<--- loop counter resets
--- CODE ---
That is why it happened this way. Your C++ version is trying to do 9999999
times as much work.
JFA
.
|