Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (a, b) (где a, b – целые числа), перемещающую Чертёжника из точки с координатами (x, y) в точку с координатами (x + a, y + b). Чертёжнику был дан для исполнения следующий алгоритм:
Начало
Сместиться на (90, -40)
Повтори N раз
Сместиться на (a, b)
Сместиться на (18, 14)
Конец повтори
Сместиться на (-9, -2)
Сместиться на (-6, -3)
Конец
Укажите наибольшее возможное значение числа N, для которого найдутся такие значения чисел a и b, что после выполнения программы Чертёжник возвратится в исходную точку.
Решение руками
Запишем систему:
Перенесем выражения с N в одну сторону, а числа в другую:
Найдем НОД (наибольший общий делитель) чисел и
.
Получим ответ:
Решение программой
max_n = 0
for n in range(1, 16):
if (-75 % n == 0) and (45 % n == 0):
a = (-75 // n) - 18
b = (45 // n) - 14
x = 90 + n * (a + 18) - 9 - 6
y = -40 + n * (b + 14) - 2 - 3
if x == 0 and y == 0:
max_n = n
print(max_n)