Su tarea es dar dos números enteros a
y b
calcular el inverso multiplicativo modular de un módulo b, si existe.
El inverso modular del a
módulo b
es un número c
tal que ac ≡ 1 (mod b)
. Este número es un módulo único b
para cualquier par de a
y b
. Existe solo si el máximo común divisor de a
y b
es 1
.
La página de Wikipedia para el inverso multiplicativo modular se puede consultar si necesita más información sobre el tema.
Entrada y salida
La entrada se da como dos enteros o como una lista de dos enteros. Su programa debe generar un solo número, el inverso multiplicativo modular que se encuentra en el intervalo 0 < c < b
o un valor que indique que no hay inverso. El valor puede ser cualquier cosa, excepto un número en el rango (0,b)
, y también puede ser una excepción. Sin embargo, el valor debe ser el mismo para los casos en los que no hay inversa.
0 < a < b
se puede suponer
Reglas
- El programa debe finalizar en algún momento y debe resolver cada caso de prueba en menos de 60 segundos.
- Se aplican lagunas estándar
Casos de prueba
Los casos de prueba a continuación se dan en el 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
Tanteo
Este es el código de golf, por lo que gana el código más corto para cada idioma.
Esta y esta son preguntas similares, pero ambas solicitan situaciones específicas.