Вручную еще можно считать вот так:
![$\varphi(x)=\prod\limits_{k=1}^n p^{a_p-1}(p-1)=n$ $\varphi(x)=\prod\limits_{k=1}^n p^{a_p-1}(p-1)=n$](https://dxdy-01.korotkov.co.uk/f/4/6/4/464658f45b088badb4b0d7ba1775ad9682.png)
, тогда
![$p-1|n$ $p-1|n$](https://dxdy-04.korotkov.co.uk/f/f/e/c/fecaa74bc744c0d80ffb67b8b8e9beee82.png)
. Можно вычислить все делители
![$d|n$ $d|n$](https://dxdy-02.korotkov.co.uk/f/9/8/f/98f9d36d03fb9e804152ab60b8f4d6dc82.png)
и проверить на простоту
![$d+1$ $d+1$](https://dxdy-02.korotkov.co.uk/f/9/0/0/900a31e213c4ffc9cc4e746e03bd272082.png)
- получим список простых
![$L$ $L$](https://dxdy-02.korotkov.co.uk/f/d/d/c/ddcb483302ed36a59286424aa5e0be1782.png)
. Тогда решение имеет вид:
![$x=\prod\limits_{p\in L}p^{a_p}$ $x=\prod\limits_{p\in L}p^{a_p}$](https://dxdy-02.korotkov.co.uk/f/d/d/f/ddfdc1cdd31be9160a1b7f0768d7d44182.png)
. Можно перебирать
![$p$ $p$](https://dxdy-03.korotkov.co.uk/f/2/e/c/2ec6e630f199f589a2402fdf3e0289d582.png)
в порядке убывания. Для поиска показателей удобно использовать такую лемму: если
![$p-1|n$ $p-1|n$](https://dxdy-04.korotkov.co.uk/f/f/e/c/fecaa74bc744c0d80ffb67b8b8e9beee82.png)
, то
![$a_p\leqslant 1+v_p(n)$ $a_p\leqslant 1+v_p(n)$](https://dxdy-01.korotkov.co.uk/f/c/5/9/c59529a63c2cf49dc7d1f572bae9276d82.png)
. Можно также проверять простые соотношения
![$s\leqslant v_2(n)$ $s\leqslant v_2(n)$](https://dxdy-04.korotkov.co.uk/f/3/9/d/39d5f01aadcaa234c73e683cfb43432282.png)
(
![$s$ $s$](https://dxdy-03.korotkov.co.uk/f/6/f/9/6f9bad7347b91ceebebd3ad7e6f6f2d182.png)
- число различных простых делителей
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
). Но в итоге перебор все равно получается рекурсивным: как только рассматриваем случай
![$a_p>0$ $a_p>0$](https://dxdy-01.korotkov.co.uk/f/8/a/f/8afe0411f4f29012cf3bf5a4597a44f182.png)
, так сразу делаем подстановку
![$x=xp^{a_p}$ $x=xp^{a_p}$](https://dxdy-02.korotkov.co.uk/f/9/f/b/9fb7305b440fcfa3e28d7945189163f382.png)
и в итоге надо снова решать уравнение
![$\varphi(x)=n_1<n$ $\varphi(x)=n_1<n$](https://dxdy-04.korotkov.co.uk/f/b/e/6/be6505343d535fc08836c76557451e4082.png)
.
Хотелось бы увидеть оценки скоростей разнообразных алгоритмов. С другой стороны, в умной статье, на которую я привел ссылку, написано, что список всех прообразов имеет экспоненциальную мощность в худшем случае (в среднем - полиномиальную), так что скорость работы поиска всех прообразов экспоненциальная в худшем случае по-любому.