Алгоритм
Для решения этой задачи мы используем «жадный» подход.
Алгоритм пытается найти наименьшую пару положительных целых чисел x и y, соответствующих заданному допуску.
Для этого он последовательно увеличивает значения x и y, пока разность между степенями a
x и b
y не станет меньше или равна заданному допуску.
Этот не гарантирует получение оптимального решения, но находит достаточно хорошее решение за разумное время.
1. Принимаются целые числа a и b.
2. Переменным x и y присваивается 1.
3. Переменным a_pow и b_pow присваиваются значения a и b соответственно.
4. Запускается бесконечный цикл:
а) если a_pow больше, чем b_pow, то допуск tolerance сравнивается с результатом деления
b_pow на разность между a_pow и b_pow;
б) если допуск меньше, то возвращаются x и y;
в) иначе y увеличивается на 1 и b_pow умножается на b;
г) если a_pow меньше, чем b_pow, то допуск tolerance сравнивается с результатом деления
a_pow на разность между b_pow и a_pow;
д) если допуск меньше, то возвращаются x и y;
е) в противном случае x увеличивается на 1 и a_pow умножается на a;
ж) если a_pow и b_pow равны, то возвращаются x и y.