Введение в личность Безу
GCD из двух целых чисел A, B является наибольшим положительным целым числом, которое разделяет их обоих, не оставляя остатка. Теперь из-за свойства Евклида, что каждое целое число N может быть разделено на другое целое число M следующим образом:
существуют пары u, v такие, что мы можем написать:
Поскольку таких пар бесконечно много, мы бы хотели найти специальные. На самом деле есть ровно (A, B не ноль) две такие пары, которые
Вызов
Цель этой задачи - найти (упорядоченную) пару коэффициентов (u, v), которые удовлетворяют вышеуказанным ограничениям и где u должно быть положительным. Это сужает вывод до уникальной пары.
вход
Можно предположить, что вход положительный, также A всегда будет больше, чем B (A> B).
Выход
Выход нашей программы / функции должен быть (упорядоченной) парой, указанной в запросе.
правила
Нельзя использовать встроенные расширенные евклидовы алгоритмы (например, в Mathematica можно использовать, GCD
но нельзя ExtendedGCD
- что в любом случае не сработает для 5,3).
Ответом может быть полная программа (получение ввода через STDIN или аналогичное и вывод через STDOUT) или функция (возвращающая пару).
Рядом с парой (u, v) не должно быть выходных данных, допускаются завершающие символы новой строки или пробелы. (скобки или запятые в порядке)
Это код гольф, все стандартные лазейки запрещены, и выигрывает программа с наименьшим количеством байтов.
Примеры
(A, B) -> (u, v)
(42, 12) -> (1, -3)
(4096, 84) -> (4, -195)
(5, 3) -> (2, -3)
(1155, 405) -> (20, -57)
(37377, 5204) -> (4365, -31351)
(7792, 7743) -> (7585, -7633)
(38884, 2737) -> (1707, -24251)
(6839, 746) -> (561, -5143)
(41908, 7228) -> (1104, -6401)
(27998, 6461) -> (3, -13)
(23780, 177) -> (20, -2687)
(11235813, 112358) -> (8643, -864301)