Votre tâche consiste à donner deux nombres entiers aet à bcalculer l'inverse multiplicatif modulaire d'un modulo b, s'il existe.
L'inverse modulaire de amodulo best un nombre ctel que ac ≡ 1 (mod b). Ce numéro est un modulo unique bpour toute paire de aet b. Il n'existe que si le plus grand diviseur commun de aet best 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.