Bézout身份简介
两个整数A,B的GCD是最大的正整数,该整数将两个整数除而无余数。现在由于欧几里得的性质,每个整数N可以除以另一个整数M,如下所示:
存在u,v对,我们可以这样写:
由于这些对的数量是无限的,因此我们想找到特殊的对。实际上恰好有两个这样的对满足(A,B不为零)
挑战
这项挑战的目标是找到满足上述约束且u必须为正的一对(有序)系数(u,v)。这样会将输出范围缩小到唯一对。
输入值
我们可以假设输入为正,而且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)