Вручную еще можно считать вот так:
, тогда
. Можно вычислить все делители
и проверить на простоту
- получим список простых
. Тогда решение имеет вид:
. Можно перебирать
в порядке убывания. Для поиска показателей удобно использовать такую лемму: если
, то
. Можно также проверять простые соотношения
(
- число различных простых делителей
). Но в итоге перебор все равно получается рекурсивным: как только рассматриваем случай
, так сразу делаем подстановку
и в итоге надо снова решать уравнение
.
Хотелось бы увидеть оценки скоростей разнообразных алгоритмов. С другой стороны, в умной статье, на которую я привел ссылку, написано, что список всех прообразов имеет экспоненциальную мощность в худшем случае (в среднем - полиномиальную), так что скорость работы поиска всех прообразов экспоненциальная в худшем случае по-любому.