Advent of Code 2015 Day 20 Part 1
Mix.install([
{:kino_aoc, "~> 0.1"}
])
Get Inputs
{:ok, puzzle_input} =
KinoAOC.download_puzzle("2015", "20", System.fetch_env!("LB_SESSION"))
My answer
1..9
|> Enum.map(fn house_number ->
1..house_number
|> Enum.filter(fn x ->
rem(house_number, x) == 0
end)
end)
1..9
|> Enum.map(fn house_number ->
limit = :math.sqrt(house_number) |> floor()
1..limit
|> Enum.filter(fn x ->
rem(house_number, x) == 0
end)
|> Enum.flat_map(fn x ->
[x, div(house_number, x)]
end)
|> Enum.uniq()
|> Enum.sort()
end)
target_number = String.to_integer(puzzle_input)
1..1000000
|> Enum.find(fn house_number ->
limit = house_number |> :math.sqrt() |> floor()
1..limit
|> Enum.filter(fn x ->
rem(house_number, x) == 0
end)
|> Enum.flat_map(fn x ->
[x, div(house_number, x)]
end)
|> Enum.uniq()
|> Enum.map(fn num -> num * 10 end)
|> Enum.sum()
|> Kernel.>=(target_number)
end)