def gcd(a, b):
if a< b:
a, b = b, a
if a % b == 0:
return b
else:
return gcd(b, a % b)
def gcd(a, b):
while b:
a, b = b, a % b
return a
'''扩展欧几里得算法是欧几里得算法(又叫辗转相除法)的扩展。
除了计算a、b两个整数的大公约数,此算法还能找到整数x、y(其中一个很可能是负数)。
通常谈到大公因子时, 我们都会提到一个非常基本的事实:
给予二整数 a 与 b, 必存在有整数 x 与 y 使得
ax + by = gcd(a,b)。
有两个数a,b,对它们进行辗转相除法,可得它们的大公约数——这是众所周知的。
然后,收集辗转相除法中产生的式子,倒回去,可以得到ax+by=gcd(a,b)的整数解。'''
def Ext_Euclid(a, b):
if b == 0:
return 1, 0, a
else:
x, y, d = Ext_Euclid(b, a % b)
x, y = y, (x-(a//b)*y)
return x, y, d
t = Ext_Euclid(56, 15)
print(t)
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧