Skip to content

Instantly share code, notes, and snippets.

@daveshah
Created March 16, 2012 13:00
Show Gist options
  • Save daveshah/2049986 to your computer and use it in GitHub Desktop.
Save daveshah/2049986 to your computer and use it in GitHub Desktop.
First crack at a Prime Number Sieve in Ruby...
class PrimeSieve
def for(range)
sieve = Array(range)
sieve.delete 1
sieve.each do |i|
sieve.each do |j|
if(i != j && j%i == 0)
sieve.delete(j)
end
end
end
end
end
load 'prime_sieve.rb'
describe PrimeSieve do
it "returns 2 for (1..2)" do
range = (1..2)
prime_sieve = PrimeSieve.new
prime_sieve.for(range).should == [2]
end
it "returns [2,3] for (1..4)" do
range = (1..4)
prime_sieve = PrimeSieve.new
prime_sieve.for(range).should == [2,3]
end
it "returns [2,3,5] for (1..5)" do
range = (1..5)
prime_sieve = PrimeSieve.new
prime_sieve.for(range).should == [2,3,5]
end
it "return [2,3,5,7,11,13] for (1..14)" do
range = (1..14)
prime_sieve = PrimeSieve.new
prime_sieve.for(range).should == [2,3,5,7,11,13]
end
it "returns [2,3,5,7,11,13,17,19] for (1..20)" do
range = (1..20)
prime_sieve = PrimeSieve.new
prime_sieve.for(range).should == [2,3,5,7,11,13,17,19]
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment