aboutsummaryrefslogtreecommitdiff
path: root/rb/day20.rb
blob: d71f7db15d8be172d12321d070ce626c5aa884a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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