def gcd(a,b): if a>b: a,b = b,a while a != 0: a, b = b % a, a return b class rational: def __init__(self, p, q): self.__num = p self.__denum = q def getValue(self): x = gcd(self.__num, self.__denum) return (self.__num // x, self.__denum // x) def __add__(self, other): return rational(self.__num*other.__denum+self.__denum*other.__num, self.__denum*other.__denum) def __eq__(self, other): return self.__num*other.__denum == self.__denum * other.__num c = rational(2,4) d = rational(3,4) f = rational(1,2) e = c+d print(c == d) print(c == f) print(e.getValue())