Sua tarefa é fornecer dois números inteiros a
e b
calcular o inverso multiplicativo modular de um módulo b, se existir.
O inverso modular do a
módulo b
é um número c
tal que ac ≡ 1 (mod b)
. Este número é um módulo únicob
para qualquer par de a
e b
. Existe apenas se o maior divisor comum de a
e b
é 1
.
A página da Wikipedia para inverso multiplicativo modular pode ser consultada se você precisar de mais informações sobre o tópico.
Entrada e saída
A entrada é fornecida como dois números inteiros ou como uma lista de dois números inteiros. Seu programa deve gerar um único número, o inverso multiplicativo modular que está no intervalo0 < c < b
ou um valor indicando que não há inverso. O valor pode ser qualquer coisa, exceto um número no intervalo (0,b)
, e também pode ser uma exceção. O valor deve, no entanto, ser o mesmo para os casos em que não há inverso.
0 < a < b
pode ser assumido
Regras
- O programa deve terminar em algum momento e resolver cada caso de teste em menos de 60 segundos
- Aplicam-se brechas padrão
Casos de teste
Os casos de teste abaixo são fornecidos no formato, a, b -> output
1, 2 -> 1
3, 6 -> Does not exist
7, 87 -> 25
25, 87 -> 7
2, 91 -> 46
13, 91 -> Does not exist
19, 1212393831 -> 701912218
31, 73714876143 -> 45180085378
3, 73714876143 -> Does not exist
Pontuação
Este é o código de golfe, portanto o código mais curto para cada idioma vence.
Este e este são questões semelhantes, mas ambos pedir para situações específicas.