求最大公约数函数

”“”
欧几里得算法
 a ÷ b = k……r
a,b的最大公约数,也是b,r的最大公约数
 
用辗转相除法确定两个正整数 a 和 b(a≥b) 的最大公因数gcd(a,b):
当a mod b=0 时gcd(a,b)=b,否则
gcd(a,b) = gcd(b,a mod b)
递归或循环运算得出结果
“”“

#非递归

def gcd(x,y):
  while y:
    x,y = y,x%y
  return x

#递归

def gcd(x,y)

  return x if y ==0 else gcd(y,x%y)

posted @ 2017-06-21 17:59  水壶01  阅读(887)  评论(0编辑  收藏  举报