Votre tâche consiste à donner deux nombres entiers a
et à b
calculer l'inverse multiplicatif modulaire d'un modulo b, s'il existe.
L'inverse modulaire de a
modulo b
est un nombre c
tel que ac ≡ 1 (mod b)
. Ce numéro est un modulo unique b
pour toute paire de a
et b
. Il n'existe que si le plus grand diviseur commun de a
et b
est 1
.
La page Wikipedia pour l'inverse multiplicatif modulaire peut être consultée si vous avez besoin de plus d'informations sur le sujet.
Entrée et sortie
L'entrée est donnée sous la forme de deux entiers ou d'une liste de deux entiers. Votre programme doit produire soit un nombre unique, l'inverse multiplicatif modulaire qui se trouve dans l'intervalle 0 < c < b
, soit une valeur indiquant qu'il n'y a pas d'inverse. La valeur peut être n'importe quoi, sauf un nombre dans la plage (0,b)
, et peut également être une exception. La valeur doit cependant être la même pour les cas où il n'y a pas d'inverse.
0 < a < b
peut être supposé
Règles
- Le programme devrait se terminer à un moment donné et devrait résoudre chaque cas de test en moins de 60 secondes
- Des échappatoires standard s'appliquent
Cas de test
Les cas de test ci-dessous sont donnés dans le format, 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
Notation
C'est le golf de code, donc le code le plus court pour chaque langue gagne.
Ceci et ceci sont des questions similaires, mais les deux demandent des situations spécifiques.