#!/usr/local/bin/ruby -w
# 'lesser prime'
# Author sholmes
require 'benchmark'
class Integer
def prime?
case
when abs == 2
true
when (abs == 0 or abs == 1 or (abs % 2) == 0)
false
else
3.step(Math.sqrt(abs).ceil, 2).none?{|n|abs % n == 0}
end
end
end
RANGE = -50..99999
Benchmark.bm do |bm|
bm.report{RANGE.select(&:prime?)}
end
p((-5..10).select(&:prime?))
IyEvdXNyL2xvY2FsL2Jpbi9ydWJ5IC13CgojICdsZXNzZXIgcHJpbWUnCiMgQXV0aG9yIHNob2xtZXMKCnJlcXVpcmUgJ2JlbmNobWFyaycKCmNsYXNzIEludGVnZXIKICBkZWYgcHJpbWU/CiAgICBjYXNlCiAgICB3aGVuIGFicyA9PSAyCiAgICAgIHRydWUKICAgIHdoZW4gKGFicyA9PSAwIG9yIGFicyA9PSAxIG9yIChhYnMgJSAyKSA9PSAwKQogICAgICBmYWxzZQogICAgZWxzZQogICAgICAzLnN0ZXAoTWF0aC5zcXJ0KGFicykuY2VpbCwgMikubm9uZT97fG58YWJzICUgbiA9PSAwfQogICAgZW5kCiAgZW5kCmVuZAoKUkFOR0UgPSAtNTAuLjk5OTk5CgpCZW5jaG1hcmsuYm0gZG8gfGJtfAogIGJtLnJlcG9ydHtSQU5HRS5zZWxlY3QoJjpwcmltZT8pfQplbmQKCnAoKC01Li4xMCkuc2VsZWN0KCY6cHJpbWU/KSk=