Classe RationalNumber

Il tuo compito è definire una classe RationalNumber in Python. Questa classe dovrebbe essere utilizzata per rappresentare un numero razionale, cioè un numero che può essere espresso come il quoziente di due interi (numeratore e denominatore).

La classe RationalNumber dovrebbe avere le seguenti caratteristiche:

  • La classe dovrebbe avere due attributi interi privati, il numerator e il denominator del numero razionale.

  • La classe dovrebbe definire i metodi magici __add__, __sub__, __mul__ e __truediv__ per sommare, sottrarre, moltiplicare e dividere due numeri razionali, rispettivamente.

  • Le operazioni di addizione, sottrazione, moltiplicazione e divisione dovrebbero essere eseguite in modo matematicamente corretto per i numeri razionali, con il risultato che dovrebbe essere un'altra istanza di RationalNumber.

  • La classe dovrebbe ridurre il numero razionale alla sua forma più semplice dividendo il numeratore e il denominatore per il loro massimo comun divisore (MCD).

  • La classe dovrebbe implementare il metodo magico __str__ che restituisce una stringa <numerator> / <denominator> nella sua forma più semplice.

Input

Output

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