Необходимо найти элемент B, обратный элементу A по модулю C.
Такой, что (A*B)%C = 1.
Как найти B в общем виде?
PythonLib
Питон для всех
question@mail.ru
·
01.01.1970 03:00
Необходимо найти элемент B, обратный элементу A по модулю C.
Такой, что (A*B)%C = 1.
Как найти B в общем виде?
answer@mail.ru
·
01.01.1970 03:00
Смотрите.
Для начала, A и C должны быть взаимно просты. Если они не взаимно просты, то любая линейная комбинация (A * X) % C = A * X + C * Y не будет равна единице, то есть, ответа нет.
Окей, пускай числа A и C взаимно просты. Для установления этого вы должны использовать алгоритм Евклида для вычисления НОД. Если вы при этом воспользуетесь , вы получите не просто НОД, а и те коэффициенты alpha, beta, при которых
alpha * A + beta * C = НОД(A, C) = 1.При этом alpha и есть ваш ответ, так как
(alpha * A) % C = (1 - beta * C) % C = 1.Все остальные значения B получаются из данного прибавлением кратного числу C.