Classe RationalNumber

Votre tâche est de définir une classe RationalNumber en Python. Cette classe doit être utilisée pour représenter un nombre rationnel, c'est-à-dire un nombre qui peut s'exprimer comme le quotient de deux entiers (numérateur et dénominateur).
La classe RationalNumber doit avoir les caractéristiques suivantes :
  • La classe doit avoir deux attributs entiers privés : le numerator (numérateur) et le denominator (dénominateur) du nombre rationnel.
  • La classe doit définir les méthodes magiques __add__, __sub__, __mul__ et __truediv__ pour additionner, soustraire, multiplier et diviser deux nombres rationnels, respectivement.
  • Les opérations d'addition, de soustraction, de multiplication et de division doivent être réalisées de manière mathématiquement exacte pour les nombres rationnels, le résultat étant une nouvelle instance de RationalNumber.
  • La classe doit réduire le nombre rationnel à sa forme la plus simple en divisant le numérateur et le dénominateur par leur plus grand commun diviseur (PGCD).
  • La classe doit implémenter la méthode magique __str__ qui retourne une chaîne de caractères sous la forme <numerator> / <denominator> dans sa forme la plus simple.
Entrée
Sortie
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