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: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

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