diff --git a/week01/1-Warmup-Problems/good_solutions.rb b/week01/1-Warmup-Problems/good_solutions.rb index c3c1f0a..ca82d19 100644 --- a/week01/1-Warmup-Problems/good_solutions.rb +++ b/week01/1-Warmup-Problems/good_solutions.rb @@ -113,11 +113,24 @@ def largest_palindrome(n) end def prime?(n) - # Waiting for PR + num = n.to_i.abs + + return false if num == 0 || num == 1 + 2.upto(num - 1) do |i| + return false if num % i == 0 + end + + true end -def list_first_primes(n) - # Waiting for PR +def Integer.all + Enumerator.new do |yielder, n: 0| + loop { yielder.yield(n += 1) } + end.lazy +end + +def first_primes(n) + Integer.all.select { |num| prime?(num) && num > 1 }.first(n) end def sieve(n)