fork download
  1. #!/usr/local/bin/ruby -w
  2.  
  3. # 'lesser prime'
  4. # Author sholmes
  5.  
  6. require 'benchmark'
  7.  
  8. class Integer
  9. def prime?
  10. case
  11. when abs == 2
  12. true
  13. when (abs == 0 or abs == 1 or (abs % 2) == 0)
  14. false
  15. else
  16. 3.step(Math.sqrt(abs).ceil, 2).none?{|n|abs % n == 0}
  17. end
  18. end
  19. end
  20.  
  21. RANGE = -50..99999
  22.  
  23. Benchmark.bm do |bm|
  24. bm.report{RANGE.select(&:prime?)}
  25. end
  26.  
  27. p((-5..10).select(&:prime?))
Success #stdin #stdout 0.57s 4892KB
stdin
Standard input is empty
stdout
      user     system      total        real
  0.570000   0.000000   0.570000 (  0.573687)
[-5, -3, -2, 2, 3, 5, 7]