Ваше завдання - дати два цілих числа aта bобчислити модульну мультиплікативну зворотну модуль b, якщо вона існує.
Модульна інверсія aмодуля b- це число cтаке, що ac ≡ 1 (mod b). Цей номер є унікальним модулем bдля будь-якої пари aта b. Він існує лише в тому випадку, якщо найбільший спільний дільник aі bє 1.
Сторінку Wikipedia для модульного мультиплікативного зворотного можна звернутися , якщо вам необхідна додаткова інформація про тему.
Вхід і вихід
Введення задається як два цілих числа, або список двох цілих чисел. Ваша програма повинна виводити або одне число, модульну мультиплікативну зворотну, яка знаходиться в інтервалі 0 < c < b, або значення, що вказує на відсутність зворотного. Значення може бути будь-яким, крім числа в діапазоні (0,b), а також може бути винятком. Однак значення має бути однаковим для випадків, коли немає зворотного.
0 < a < b можна припустити
Правила
- Програма повинна закінчитися в якийсь момент і повинна вирішити кожен тестовий випадок менше ніж за 60 секунд
- Застосовуються стандартні лазівки
Тестові кейси
Нижче наведено тестові приклади у форматі, 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
Оцінка балів
Це код гольфу, тому виграє найкоротший код для кожної мови.
Це та це подібні запитання, але обидва задають конкретні ситуації.