Sha256: 1053a24defc730ac68f637a2ff90bffedbbba8ce34f16e9321209551b55fe3cf
Contents?: true
Size: 363 Bytes
Versions: 253
Compression:
Stored size: 363 Bytes
Contents
module Primes extend self def sieve(limit) sieve_ar = Array.new(limit + 1, true) sieve_ar[0] = sieve_ar[1] = false 2.step(to: Math.sqrt(limit)) do |i| next unless sieve_ar[i] (i*i).step(to: limit, by: i) { |ii| sieve_ar[ii] = false } end sieve_ar.each_with_index.reduce([] of Int32) { |p, (s, i)| s ? p << i : p } end end
Version data entries
253 entries across 253 versions & 1 rubygems