Clase RationalNumber

Tu tarea es definir una clase RationalNumber en Python. Esta clase se utilizará para representar un número racional, un número que puede expresarse como el cociente de dos enteros (numerador y denominador).
La clase RationalNumber debe tener las siguientes características:
  • La clase debe tener dos atributos enteros privados, el numerator y el denominator del número racional.
  • La clase debe definir los métodos mágicos __add__, __sub__, __mul__ y __truediv__ para sumar, restar, multiplicar y dividir dos números racionales, respectivamente.
  • Las operaciones de suma, resta, multiplicación y división deben realizarse de manera matemáticamente precisa para números racionales, resultando en otra instancia de RationalNumber.
  • La clase debe reducir el número racional a su forma más simple dividiendo el numerador y el denominador por su máximo común divisor (MCD).
  • La clase debe implementar el método mágico __str__ que debe devolver una cadena <numerator> / <denominator> en su forma más simple.
Entrada
Salida
print(RationalNumber(1, 2) + RationalNumber(1, 3)); print(RationalNumber(1, 2) - RationalNumber(1, 3)); print(RationalNumber(1, 2) * RationalNumber(1, 3)); print(RationalNumber(1, 2) / RationalNumber(1, 3));
5 / 6 1 / 6 1 / 6 3 / 2
 

Constraints

Time limit: 1 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue