Bug #11953 ยป nth_prime.rb
1 
class Prime 

2 
def self.nth(num) 
3 
error(num) 
4 
primes = build_primes(num) 
5 
primes.last 
6 
end

7  
8 
private

9  
10 
def build_primes(num) 
11 
primes = [2] 
12 
index = 3 
13 
until primes.size == num 
14 
if example?(index, primes) 
15 
primes << index 
16 
end

17 
index += 1 
18 
end

19 
primes

20 
end

21  
22 
def error(num) 
23 
unless num > 0 
24 
raise ArgumentError 
25 
end

26 
end

27  
28 
def example?(index, primes) 
29 
primes.each do prime 
30 
if index % prime == 0 
31 
return false 
32 
end

33 
end

34 
true

35 
end

36 
end
