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

Version Path
trackler-2.2.1.180 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.179 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.178 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.177 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.176 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.175 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.174 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.173 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.172 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.171 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.170 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.169 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.167 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.166 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.165 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.164 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.163 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.162 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.161 tracks/crystal/exercises/sieve/src/example.cr
trackler-2.2.1.160 tracks/crystal/exercises/sieve/src/example.cr