Twoim zadaniem jest podanie dwóch liczb całkowitych a
i b
obliczenie modularnej multiplikatywnej odwrotności modułu b, jeśli taki istnieje.
Modularna odwrotność a
modulo b
jest liczbą c
taką, że ac ≡ 1 (mod b)
. Ten numer jest unikalnym modułem b
dla dowolnej pary a
i b
. Istnieje tylko wtedy, gdy jest największym wspólnym dzielnikiem a
i b
jest 1
.
Strona Wikipedia dla modułowego Liczba odwrotna może być konsultowany, jeśli potrzebujesz więcej informacji na dany temat.
Wejście i wyjście
Dane wejściowe są podawane jako dwie liczby całkowite lub lista dwóch liczb całkowitych. Twój program powinien wypisać albo pojedynczą liczbę, modularną odwrotność multiplikatywną, która znajduje się w przedziale 0 < c < b
, lub wartość wskazującą, że nie ma odwrotności. Wartość może być dowolna, z wyjątkiem liczby z zakresu (0,b)
, i może być również wyjątkiem. Wartość powinna jednak być taka sama dla przypadków, w których nie ma odwrotności.
0 < a < b
można założyć
Zasady
- Program powinien zakończyć się w pewnym momencie i powinien rozwiązać każdy przypadek testowy w mniej niż 60 sekund
- Obowiązują standardowe luki
Przypadki testowe
Poniższe przypadki testowe są podane w formacie, 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
Punktacja
To jest kod golfowy, więc wygrywa najkrótszy kod dla każdego języka.
To i to są podobne pytania, ale oba dotyczą konkretnych sytuacji.