Ruby Sieve
Though it could be done better, I’m sure, but I’m actually pretty satisfied with this one. It loops only twice as opposed to filtered ranges and whatnot other solutions to the sieve. I was thinking of rather creating a list and deleting elements from it, but that’s already three loops. Maybe I’ll do a benchmark later on more solutions. # Sieve contains a function to return a set of primes class Sieve def initialize(n) @n = n end # Returns a list of primes up to a certain limit # @param n limit # @return list of primes def primes marked = [] primes = [] (2..@n).each do |e| unless marked.include?(e) primes.push e (e..@n).step(e) { |s| marked.push s } end end primes end end Cheers, Gergely. ...