22 lines
629 B
Python
22 lines
629 B
Python
|
import sys
|
||
|
|
||
|
|
||
|
def odd_number_of_divisors(n, number_of_passes):
|
||
|
"""Counts the number of times the door is toggled, and returns True if left open after a number of passes."""
|
||
|
return sum((n % i == 0 for i in range(1, number_of_passes + 1))) % 2 == 1
|
||
|
|
||
|
|
||
|
def pass_doors(number_of_doors, number_of_passes):
|
||
|
if number_of_passes > number_of_doors:
|
||
|
number_of_passes = number_of_doors
|
||
|
return sum(
|
||
|
(
|
||
|
odd_number_of_divisors(i, number_of_passes)
|
||
|
for i in range(1, number_of_doors + 1)
|
||
|
)
|
||
|
)
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
print(pass_doors(int(sys.argv[1]), int(sys.argv[2])))
|