Project-Euler Ruby

What is Project Euler

Project Euler is a website with a collection of programming and mathematical problems. Each challenge varies in difficulty and there are over 600 challenges. I highly recommend anyone interested in puzzles and programming to create an account and start solving. About Project Euler

** Stop here if you have not yet tried and solved Problem 3. **

**

**

**

**

Problem 3

The prime factors of 13195 are 5, 7, 13 and 29.

What is the largest prime factor of the number 600851475143 ?

class Problem3
  require 'benchmark'

  def question
    "The prime factors of 13195 are 5, 7, 13 and 29.

    What is the largest prime factor of the number 600851475143 ?"
  end

  def largest_prime_factor n
    max = 0
    limit = n
    runner = 2

    while(runner <= limit) do
      factor = 0
      if limit % runner == 0
        limit = limit / runner
        factor = runner
        max = factor if factor > max
      else
        runner = runner + 1
      end
    end

    max
  end

  def solve
    largest_prime_factor(600851475143)
  end

  def benchmark
    Benchmark.measure { solve }
  end

  def correct?
    solve === answer
  end

  private

  def answer
    6857
  end
end

 

Did you like this article? Check out these too.


 

Found this useful? Know how it can be improved? Get in touch and share your thoughts at blog@hocnest.com