Вступ до особистості Безута
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)