puzzles/passdoors/passdoors.py
Zoé Cassiopée Gauthier 7e4f02547b Initial commit
2024-04-02 17:01:09 -04:00

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])))