Il tuo compito è quello di dare due numeri interi a
e b
calcolare l'inverso moltiplicativo modulare di un modulo b, se esiste.
L'inverso modulare di a
modulo b
è un numero c
tale ac ≡ 1 (mod b)
. Questo numero è univoco modulo b
per qualsiasi coppia di a
e b
. Esiste solo se il più grande divisore comune di a
ed 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 < b
o 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.