Classe RationalNumber

A sua tarefa é definir uma classe RationalNumber em Python. Esta classe será utilizada para representar um número racional, ou seja, um número que pode ser expresso como o quociente de dois inteiros (numerador e denominador).
A classe RationalNumber deve ter as seguintes características:
  • A classe deve ter dois atributos inteiros privados, o numerator e o denominator do número racional.
  • Deve definir os métodos mágicos __add__, __sub__, __mul__ e __truediv__ para adicionar, subtrair, multiplicar e dividir dois números racionais, respectivamente.
  • As operações de adição, subtração, multiplicação e divisão devem ser realizadas de forma matematicamente correta para números racionais, resultando em outra instância de RationalNumber.
  • A classe deve simplificar o número racional para a sua forma mais simples, dividindo o numerator e o denominator pelo seu máximo divisor comum (MDC).
  • Deve implementar o método mágico __str__ que retorna uma string <numerator> / <denominator> na sua forma mais simplificada.
Entrada
Saída
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