33 lines
829 B
Python
Raw Permalink Normal View History

2016-08-08 07:32:56 +02:00
#!/usr/bin/python
from math import ceil, sqrt
def get_present_for_house(houseNumber, delivered, max):
result = 0
for x in range(int(sqrt(houseNumber))):
elf = x+1
if houseNumber % (elf) == 0:
if houseNumber <= elf*max:
result += (elf)*delivered
if houseNumber <= (houseNumber/elf)*max:
if elf != houseNumber / elf:
result += (houseNumber/elf) * delivered
return result
def main():
input = 36000000
houseNumber = int(sqrt(input))
while True:
giftNumber = get_present_for_house(houseNumber, 11, 50)
print "house: %d, gifts: %d" % (houseNumber, giftNumber)
if giftNumber >= input:
break
houseNumber += 1
print houseNumber
if __name__ == "__main__":
main()