Module: Numbers

Defined in:
lib/numbers.rb

Overview

Numeric Extensions

Class Method Summary collapse

Class Method Details

.prime_numbers(limit = 1_000_000, options = {:verbose => false}) ⇒ Object

returns an array with all prime numbers up to limit



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/numbers.rb', line 6

def self.prime_numbers(limit = 1_000_000, options = {:verbose => false})
  i = 1; divisors = [2]; primzahlen = []
  t = Time.now
  while i <= limit do
    p = true
    divisors.each do |d|
      if i%d == 0 && d != i
        p = false
        break
      end  
    end
    
    if p == true
      puts i if options[:verbose] == true
      primzahlen << i
    end    
    
    i += 1
    divisors << divisors.last+1
  end  
  
  puts "Took #{(t-Time.now).abs.round(2)} sec." if options[:verbose] == true
  return primzahlen
end