Не разобравшись, как использовать обратный алгоритм Евклида, вы его использовали. По крайней мере, его идею. Идея ведь в том, что берётся остаток от деления модуля на делимое (делимое в нашем случае

). Здесь остаток будет равен

, но

, поэтому можно посчитать и за

. Дальше делается такой перевёртыш как вы сделали и всё продолжается итеративно точно так же. Просто здесь удачный случай и алгоритм Евклида работает в два хода (а вообще ходов у него максимум - порядка логарифма; худший пример - применение алгоритма к двум последовательным числам Фибоначчи). Двуходовость алгоритма как бы ещё раз намекает, что задачу нужно было решать так и бумажки достаточно.
А про

и

- да, опечатка.