diff --git a/Project Euler/Problem 3/problem3_sol1.rb b/Project Euler/Problem 3/problem3_sol1.rb new file mode 100644 index 0000000..1401f44 --- /dev/null +++ b/Project Euler/Problem 3/problem3_sol1.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +# The prime factors of 13195 are 5, 7, 13 and 29. +# What is the largest prime factor of the number 600851475143 + +# find all factors of the given number +def get_factors(number) + factors = [] + (1..Math.sqrt(number).to_i).each do |num| + if (number % num).zero? + factors << num + factors << number / num + end + end + factors +end + +# determine if a given number is a prime number +def prime?(number) + get_factors(number).length == 2 +end + +# find the largest prime +def largest_prime_factor(number) + prime_factors = get_factors(number).select { |factor| prime?(factor) } + prime_factors.max +end + +puts largest_prime_factor(600851475143)