Овощеслав приступил к поиску решения задачи. Самый простой случай — если длина одной стороны участка кратна длине другой стороны.
Число a кратно числу b, если a можно представить в виде произведения b и с, где с — какое-то другое число.
Например, 8 кратно 4, так как 8 = 4 × 2.
А 9 не кратно 4, ведь нельзя подобрать такое число с, которое при умножении на 4 давало бы 9.
Допустим, ширина участка равна 20 м, а длина — 40 м. Если разделить такой участок пополам, получим две части размером 20 м х 20 м каждая. Это самый большой размер участка из возможных.
Так Овощеслав определил базовый случай алгоритма.
А какой в задаче рекурсивный случай?
Овощеслав решил применить стратегию «разделяй и властвуй». В соответствии с ней при каждом рекурсивном вызове задача уменьшается.
Как сократить задачу?
Для начала нужно выделить самые большие участки, которые можно использовать.
В исходном садовом участке можно разместить два участка размером 820 х 820. Но ещё останется место размером 820 х 760 м, которое тоже можно разделить.
Чтобы это сделать, Овощеслав применит тот же алгоритм, что и на предыдущем шаге.
Овощеславу нужно разделить участок размером 2400 х 820 на равные квадраты. Решая задачу методом «разделяй и властвуй», он получил меньший сегмент — 820 х 760.
Чтобы понять, что произойдёт дальше, разберёмся с алгоритмом Евклида.
Алгоритм Евклида позволяет найти наибольший общий делитель двух целых чисел. То есть для чисел а и b найти такое максимальное число с, на которое бы делились а и b.
Здесь 6 — НОД чисел 12 и 18.
Ведь именно наибольший делитель сторон садового участка Овощеславу и нужно найти.
Алгоритм Евклида нахождения наибольшего общего делителя (НОД):
- Большее число делим на меньшее.
- Если делится без остатка, то меньшее число и есть НОД. Выходим из цикла.
- Если есть остаток, то большее число заменяем на меньшее, меньшее — на остаток от деления
- Переходим к пункту 1.
Овощеслав может воспользоваться тем же алгоритмом, который только что применял для большего участка. Если начать с участка 820 х 760, то размеры самого большого квадрата, который можно получить, составляют 760 х 760 м.
Остаётся меньший сегмент с размерами 760 х 60 м.
Получится ещё 12 участков размером 60 х 60 м. Останется меньший сегмент: 60 х 40 м.
После очередного отсечения получится квадрат размером 40 х 40 м.
После этого шага Овощеслав получит базовый случай, ведь 40 кратно 20. Если разбить этот сегмент на квадраты 20 х 20 м, ничего лишнего не останется!
Таким образом, для исходного садового участка самый большой размер подучастка равен 20 х 20 м.
Удача, что на предпоследнем шаге получились числа 40 и 20!