Skip to content

Instantly share code, notes, and snippets.

@gom
Created January 20, 2009 05:22
Show Gist options
  • Save gom/49347 to your computer and use it in GitHub Desktop.
Save gom/49347 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
class Integer
def prime?
return false if self < 2
return true if self == 2
return false if self % 2 == 0
max = Math::sqrt(self).ceil
(3..max).step(2) {|i|
return false if (self % i == 0)
}
true
end
end
def primeList num
return [] if num < 2
arr = []
prime = [2]
(2..num).each{|i| arr << i }
while (prime.last < Math::sqrt(arr.last).ceil) do
arr.reject!{|i|
i % prime.last == 0
}
prime << arr.shift
end
prime + arr
end
# prime? entry
(1..100).each {|i|
puts i if i.prime?
}
# primeList entry
puts primeList(100)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment