Исполнитель перемещается по координатной плоскости, оставляя след в виде линии.
может выполнять команду сместиться на
, где
и
— целые числа, которые перемещают
из точки с координатами
в точку с координатами
.
Цикл
ПОВТОРИ число РАЗ
последовательность команд
КОНЕЦ ПОВТОРИ
Означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).
Исполнителю был дан для исполнения следующий алгоритм:
НАЧАЛО
сместиться на
ПОВТОРИТЬ раз
cместиться на
cместиться на
КОНЕЦ
сместиться на
КОНЕЦ
Определите минимальное натуральное значение и
, что после выполнения программы
возвратится в исходную точку.
Решение руками
Запишем систему для координат и
, учитывая, что исполнитель вернулся в исходную точку:
Перенесем выражения с N в одну сторону, а числа в другую:
Найдем НОД (наибольший общий делитель) чисел и
.
Получим ответ:
Решение программой
def find_min_n():
for n in range(2, 100):
if (-35 % n == 0) and (42 % n == 0):
a = (-35 // n) - 31
b = (42 // n) - 9
x = -47 + n * (31 + a) + 82
y = -19 + n * (9 + b) - 23
if x == 0 and y == 0:
return n
return None
print(find_min_n())