Недавно я участвовал в конкурсе кодеров, где одна из задач была следующей:
Учитывая два целых числа X и Y, найдите минимальное количество шагов, необходимых для преобразования X в Y. Вы можете выполнить следующие операции любое количество раз в любом порядке:
1) Разделите X на любое целое число A, 2) Умножьте X на любое целое число B.
Пример: Если X = 15 и Y = 10 , затем сначала умножьте X на 2, что даст 30, а затем разделите 30 на 3, чтобы получить Y (т. е. 10). Так что минимума нет. шагов в этом случае - 2.
Не знаю, как это решить.