877. 扩展欧几里得算法
摘要
Title: 877. 扩展欧几里得算法
Tag: exgcd
Memory Limit: 64 MB
Time Limit: 1000 ms
Powered by:NEFU AB-IN
877. 扩展欧几里得算法
-
题意
给定 n 对正整数 ai,bi,对于每对数,求出一组 xi,yi,使其满足 ai×xi+bi×yi=gcd(ai,bi)。
-
思路
-
所以 -
设,
由,可得:
即:
即:
根据恒等定理,对应项相等,得:
这样我们就得到了:,的值基于,,所以我们可以通过递归求解。
-
-
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16def exgcd(a, b):
global x, y
if b == 0:
x, y = 1, 0
return a
d = exgcd(b, a % b)
x, y = y, x
y -= (a // b) * x
return d
for _ in range(int(input())):
a, b = map(int, input().split())
x, y = 0, 0
exgcd(a, b)
print(x, y)