Ваше завдання - дати два цілих числа 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
Оцінка балів
Це код гольфу, тому виграє найкоротший код для кожної мови.
Це та це подібні запитання, але обидва задають конкретні ситуації.