33 lines
829 B
Python
33 lines
829 B
Python
#!/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()
|