Method: Euler#generate_sieve
- Defined in:
- lib/euler.rb
#generate_sieve(max) ⇒ Object
122 123 124 125 126 127 128 129 130 131 |
# File 'lib/euler.rb', line 122 def generate_sieve(max) @sieve = Array.new(max, false) @sieve[2] = true 3.step(max, 2) { |x| @sieve[x] = true} 3.step(Math.sqrt(max).to_i, 2) { |i| if @sieve[i] (i**2).step(max, 2*i) { |x| @sieve[x] = false} end } end |