Часть (mod p) относится не к правой стороне, а к знаку равенства: он говорит, что modulo p, pow (a, q) и 1 равны. Например, «по модулю 10, 246126 и 7868726 равны» (и они оба равны 6 по модулю 10): два числа x и y равны по модулю p, если они имеют одинаковый остаток при делении на p или, что то же самое, если p делит xy.
Поскольку вы, кажется, исходите из перспективы программирования, другой способ сказать, что это pow (a, q)% p = 1, где «%» - это оператор «остатка», реализованный на нескольких языках (предполагая, что p> 1).
Вы должны прочитать статью в Википедии по адресу Modular arithmetic или любую книгу по теории элементарных чисел (или даже книгу криптографии, поскольку она, вероятно, представит модульную арифметику).
Чтобы ответить на другой вопрос, нет общей формулы для нахождения такого a (насколько мне известно). Предполагая, что p является простым, и используя Fermat's little theorem, чтобы уменьшить q по модулю p-1 и считая, что q делит p-1 (или нет такого a), вы можете создать такой a, взяв primitive root p и поднимая его до мощности (p-1)/q. [И в более общем случае, когда p не является простым, вы можете уменьшить q по модулю φ (p), затем предположив, что он делит φ (p), и вы знаете примитивный корень (скажем r) mod p, вы можете взять r в силу φ (p)/q, где φ - the totient function - это исходит от Euler's theorem.]
Woah! Я рад, что вы здесь, чтобы ответить на подобные вопросы! –