Алгоритм Евклида мне кажется довольно неудобным.
А чем он неудобен? Фактически это то же самое, что раскладываем

в цепную дробь. Тогда числитель предпоследней подходящей дроби с точностью до знака (определяемого чётностью/нечётностью номера) и есть обратный.
Бинарный алгоритм - это как я догадываюсь несколько возведений в квадрат (исходя из двоичного кода числа p-2) с последующим перемножением?
Можно просто тупо вычислять степени

по модулю p. Если в этой последовательности встретится

при

, то

обратный. В противном случае придётся дойти до

, хотя и в этом случае можно минимизировать процесс за счёт пропуска вычислений некоторых степеней, используя делимость

на порядок элемента

- но это скорее для хьюмена, чем для компьютера.