diff --git a/problem05.rb b/problem05.rb index e69de29..7a536d6 100644 --- a/problem05.rb +++ b/problem05.rb @@ -0,0 +1,27 @@ +def primes_up_to(num) + primes = [2] + i = 3 + while i <= num + primes << i unless primes.any? {|element| i % element == 0} + i += 2 + end + return primes +end + + +def smallest_prime_factor(num) + return 2 if num.even? + i = 3 + while i <= num + return i if num%i==0 + i += 2 + end +end + +def smallest_multiple(num) + arr = primes_up_to(num) + (2..num).to_a.each{|number| arr << smallest_prime_factor(number) unless arr.inject(:*)%number == 0} + arr.inject(:*) +end + +p smallest_multiple(20)