Su tarea es dar dos números enteros ay bcalcular el inverso multiplicativo modular de un módulo b, si existe.
El inverso modular del amódulo bes un número ctal que ac ≡ 1 (mod b). Este número es un módulo único bpara cualquier par de ay b. Existe solo si el máximo común divisor de ay bes 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 < bo 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.