Il tuo compito è quello di dare due numeri interi ae bcalcolare l'inverso moltiplicativo modulare di un modulo b, se esiste.
L'inverso modulare di amodulo bè un numero ctale ac ≡ 1 (mod b). Questo numero è univoco modulo bper qualsiasi coppia di ae b. Esiste solo se il più grande divisore comune di aed bè 1.
La pagina Wikipedia per l'inverso moltiplicativo modulare può essere consultata se sono necessarie ulteriori informazioni sull'argomento.
Ingresso e uscita
L'input viene dato come due numeri interi o un elenco di due numeri interi. Il programma dovrebbe generare un singolo numero, l'inverso moltiplicativo modulare che si trova nell'intervallo 0 < c < bo un valore che indica che non vi è alcun inverso. Il valore può essere qualsiasi cosa, tranne un numero nell'intervallo (0,b)e può anche essere un'eccezione. Il valore dovrebbe tuttavia essere lo stesso per i casi in cui non vi è alcun inverso.
0 < a < b può essere assunto
Regole
- Il programma dovrebbe terminare ad un certo punto e risolvere ogni caso di test in meno di 60 secondi
- Si applicano scappatoie standard
Casi test
I casi di test di seguito sono riportati nel 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
punteggio
Questo è il codice golf, quindi vince il codice più breve per ogni lingua.
Questa e questa sono domande simili, ma entrambe richiedono situazioni specifiche.