Я не знаю каким образом Вам задаются параметры

и

и велики ли они?
Параметр

брали только из массива простых чисел - от 2 до 99991. Значение

- любое натуральное, но большее, чем

. Как они были собраны в пары - это не моя задача, да и мне, как программисту, это неинтересно.
Зачем выдумывать новое решение уравнения? Я его решил, решение - единственное при любом заданном

. Весь вопрос - в быстроте счета. Мне нужно увеличить скорость счета хотя бы на порядок. Числовые функции Эйлера хранятся в виде одномерного массива, их вычислять не надо. Остается только ускорить процессы возведения в степень и выявления остатков (сравнения по модулю). Но как ускорить в 10 раз - ума не приложу.
Сегодня приобрели супермашину NEC SX-9. Скорость счета возросла в тысячи раз. Теперь все ок. Использование явных выражений в 4,5 раза эффективней (по скорости), чем алгоритм Евклида. Проверено на 18 триллионах значений

и

. И запомните: явные формулы всегда эффективней "крутящихся". Всем спасибо!