Насчет экспоненты логарифма я погорячился, не нахожу подходящих функций.
Кстати, конвертация mpz в ui совсем несложна:
unsigned long int mpz_get_ui (mpz_t op)
Это если для отчета, например, нужно будет выводить промежуточные расчеты — чтоб вывести результат возведения в степень еще без взятия по модулю. Хотя не думаю, что это Вам нужно.