欧几里得算法python
一、问题描述
求最大公约数
class Fraction:def __init__(self, a, b):self.a = aself.b = bx = self.gcd(a, b)self.a /= xself.b /= xdef gcd(self, a, b):while b >0:r = a % ba = bb = rreturn adef zgs(self, a, b):x = self.gcd(a, b)return a / x * bdef __add__(self, other):a = self.ab = self.bc = other.ad = other.bfenmu = self.zgs(b, d)fenzi = a * fenmu / b + c * fenmu / dreturn Fraction(fenzi, fenmu)def __str__(self):return "%d/%d" % (self.a, self.b)a = Fraction(1, 3)
b = Fraction(1, 2)
print(a+b)
二、结果展示
5/6