python最大公约数递归方法与非递归办法及扩展-创新互联

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元起,快前往官网查看详情吧


当前标题:python最大公约数递归方法与非递归办法及扩展-创新互联
转载注明:http://pwwzsj.com/article/djhojp.html