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
|