diff options
Diffstat (limited to 'rb/day20.rb')
-rwxr-xr-x | rb/day20.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/rb/day20.rb b/rb/day20.rb new file mode 100755 index 0000000..d71f7db --- /dev/null +++ b/rb/day20.rb @@ -0,0 +1,25 @@ +#!/usr/bin/env ruby + +require "prime" + +def factors(m) + return [1] if 1 == m + primes, powers = Prime.prime_division(m).transpose + ranges = powers.map { |n| (0..n).to_a } + ranges[0] + .product( *ranges[1..-1] ) + .map { |es| primes + .zip(es) + .map { |p, e| p ** e } + .reduce(:*) + }.sort +end + +target = File.read("day20.input").strip.to_i + +i = 1 +loop do + break if factors(i).sum * 10 >= target + i += 1 +end +puts i |