最大公约数,在化简分数时会用到
比如2/6 = 1/3
你咋知道要上下同时除2,因为2是6和2的最大公约数
那么最大公约数该怎么求:
最大公约数和最小公倍数
m = max(x, y)
n = min(x, y)
while m%n:
m, n = n, m%n
return n
注意,当分子或分母有个负数时,比如:
-2/6,用上面的方式计算出来的最大公约数是-2,你把-2/6上下同除以-2就成了1/-3,这是部不对的,所以记得将求出来的最大公约数来一个abs
一般情况下求最大公约数直接使用 math.gcd(a,b)