Skip to content

Instantly share code, notes, and snippets.

@raphweiner
Created April 9, 2013 15:11
Show Gist options
  • Save raphweiner/5346504 to your computer and use it in GitHub Desktop.
Save raphweiner/5346504 to your computer and use it in GitHub Desktop.
Warmup solution
class Sieve
attr_reader :unmarked, :primes
def initialize(max)
@unmarked = (2..max).to_a
@primes = []
resurrect_eratosthenes
end
def resurrect_eratosthenes
until unmarked.empty? do
prime = unmarked.shift
primes << prime
delete_multiples(prime)
end
end
def delete_multiples(prime)
unmarked.delete_if { |number| number % prime == 0 }
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment