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