def find_max_n():
target_x, target_y = 1, -3
move1_x, move1_y = -7, -1
repeat_move1_x, repeat_move1_y = 15, 22
final_move_x, final_move_y = 23, -32
max_n = 0
for n in range(1, 10**6):
dx = move1_x + n * repeat_move1_x + final_move_x
dy = move1_y + n * repeat_move1_y + final_move_y
if (target_x - dx) % n == 0 and (target_y - dy) % n == 0:
a = (target_x - dx) // n
b = (target_y - dy) // n
if a.is_integer() and b.is_integer():
max_n = n
return max_n
if __name__ == "__main__":
print(find_max_n())
Сместиться на (-7,–1)
Повтори N раз
Сместиться на (15, 22)
Сместиться на (a, b)
конец
Сместиться на (23, –32)
Найдите наибольшее число повторений N в конструкции «Повтори … раз», при котором значения a и b можно выбрать так, что после выполнения алгоритм Чертёжник окажется в точке (1; –3).