Ryan Davis wrote:
> On Jan 17, 2007, at 10:10 PM, William James wrote:
>
> > Comparing Ruby to Lua and LuaJIT for intensively computing primes:
> >
> > Ruby   245.763 seconds
> > Lua     10.685 seconds
> > LuaJIT   1.311 seconds
> >
> > # the Ruby program
> > def prime(n)
> >   if n > 2 and n % 2 == 0
> >     return false
> >   end
> >   3.step( Math.sqrt(n).floor, 2){|i|
> >     if n % i == 0
> >       return false
> >     end
> >   }
> >   true
> > end
>
> I wrote mine a bit different:
>
>    def prime(n)
>      return false if n > 2 and n % 2 == 0
>      max = sqrt(n)
>      3.upto(max) do |i|
>        return false if i % 2 != 0 and n % i == 0
>      end
>      return true
>    end
>
>    optimize :prime
>
> ---
>
> now, optimize converts it to C which doesn't have the benefits of big
> numerics built in, but that doesn't sound like a problem for the OP.
> Here are my times:
>
> pure ruby: real 0m1.139s user 0m1.110s sys 0m0.009s
> opt  ruby: real 0m0.259s user 0m0.201s sys 0m0.056s

You're saying that pure Ruby took less than 2 seconds?
I don't see how that is possible.  On the faster of the two
computers at my disposal your version ran in 207 seconds.