Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (c, d) (где c, d – целые числа), перемещающую Чертёжника из точки с координатами (x, y) в точку с координатами (x + c, y + d).
Цикл
Повтори число раз
Последовательность команд
Конец повтори
означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).
Чертёжнику был дан для исполнения следующий алгоритм:
Начало
Сместиться на (-15, -144)
Повтори N раз
Сместиться на (c, 300)
Сместиться на (200, d)
Конец повтори
Сместиться на (-25, 72)
Конец
Укажите максимальное значение числа N>1, для которого найдутся такие значения чисел c и d, что после выполнения программы Чертежник возвратится в исходную точку.
Решение руками
Преобразуем все передвижения в систему:
|
|
НОД(40; 72) = 8 — ответ.
Решение программой
def find_max_n():
max_n = 0
for n in range(2, 41):
if (40 % n == 0) and (72 % n == 0):
c = (40 // n) - 200
d = (72 // n) - 300
x = -15 + n * (c + 200) - 25
y = -144 + n * (300 + d) + 72
if x == 0 and y == 0:
max_n = n
return max_n
print(find_max_n())