2015 day 20.
This commit is contained in:
parent
cfa7718475
commit
57fcb47fe9
28
src/holt59/aoc/2015/day20.py
Normal file
28
src/holt59/aoc/2015/day20.py
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
import itertools
|
||||||
|
import sys
|
||||||
|
|
||||||
|
target = int(sys.stdin.read())
|
||||||
|
|
||||||
|
|
||||||
|
def presents(n: int, elf: int, max: int = target) -> int:
|
||||||
|
count = 0
|
||||||
|
k = 1
|
||||||
|
while k * k < n:
|
||||||
|
if n % k == 0:
|
||||||
|
if n // k <= max:
|
||||||
|
count += elf * k
|
||||||
|
if k <= max:
|
||||||
|
count += elf * (n // k)
|
||||||
|
k += 1
|
||||||
|
|
||||||
|
if k * k == n and k <= max:
|
||||||
|
count += elf * k
|
||||||
|
|
||||||
|
return count
|
||||||
|
|
||||||
|
|
||||||
|
answer_1 = next(n for n in itertools.count(1) if presents(n, 10) >= target)
|
||||||
|
print(f"answer 1 is {answer_1}")
|
||||||
|
|
||||||
|
answer_2 = next(n for n in itertools.count(1) if presents(n, 11, 50) >= target)
|
||||||
|
print(f"answer 2 is {answer_2}")
|
1
src/holt59/aoc/inputs/holt59/2015/day20.txt
Normal file
1
src/holt59/aoc/inputs/holt59/2015/day20.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
34000000
|
Loading…
Reference in New Issue
Block a user