第一题

题目:利用 egcd 算法的思路,手动计算以下数值的 Bézout 系数和最大公因子:

a = 132,b = 78

a = 273,b = 131

解:

egcd算法可以帮助我们计算两个整数 (a) 和 (b) 的最大公因子(gcd),以及找到贝祖系数 (x) 和 (y),使得:

1: a = 132,b = 78

2: a = 273,b = 131

第二题

证明

第三题

证明

第四题

用代码(语言不限)实现egcd算法,并利用自己的代码求以下a和b的最大公因子和Bezout系数。

1)a = 154954179184694689280846339291, b = 6413915469668918084633

2)a = 1260343087433328623791076926584, b = 84279984323383

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def egcd(a, b):
j0, j1, s0, s1 = 1, 0, 0, 1
while(b):
a, b ,q= b, a%b ,a//b
j0=j1
j1=j0 - q*j1
s0= s1
s1=s0 - q*s1
return a, j0, s0
a1 = 154954179184694689280846339291
b1 = 6413915469668918084633
gcd1, x1, y1 = egcd(a1, b1)
print(f"a1,b1最大公因数为{gcd1},bezout系数为{x1}{y1}")

a2 = 1260343087433328623791076926584
b2 = 84279984323383
gcd2, x2, y2 = egcd(a2, b2)
print(f"a2,b2最大公因数为{gcd2},bezout系数为{x2}{y2}")