Re: Поиск степеней по модулю простого числа
От: foxafox  
Дата: 26.12.18 22:37
Оценка:
Так как p — простое, то кольцо вычетов циклично, и любая подгруппа циклична. Можно попробовать такое решение:


std::set<unsigned> solve_set(unsigned A, unsigned P, unsigned L, unsigned R)
{
    std::set<unsigned> res;

    unsigned x = 1;

    do
    {
        x = (std::uint64_t) x * A % P;

        if (x >= L && x <= R)
        {
          if (!res.insert(x) .second)
            break;
        }
    }
    while (x != 1);

    return res;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.