Project Euler Problem 7 Solution

By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6^(th) prime is 13.

What is the 10001^(st) prime number?

My solution in Ruby:

def is_prime ( p )
  if p == 2
    return true
  elsif p <= 1 || p % 2 == 0
    return false
  else
    (3 .. Math.sqrt(p)).step(2) do |i|
      if p % i == 0
        return false
      end
    end
    return true
  end
end

prime_count = 6
prime_number = 13
number = 13
while prime_count < 10001 do
  number += 2
  if is_prime(number)
    prime_count += 1
    prime_number = number
  end
end
puts '***********'
puts "#{prime_count}: #{prime_number}"

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.