Класс RationalNumber
Ваша задача — определить класс
RationalNumber
на языке Python. Этот класс должен использоваться для представления рационального числа, то есть числа, которое можно выразить как отношение двух целых чисел (числителя и знаменателя).Класс
RationalNumber
должен обладать следующими характеристиками:- Класс должен иметь два приватных целочисленных атрибута:
numerator
(числитель) иdenominator
(знаменатель) рационального числа.
- Класс должен определить магические методы
__add__
,__sub__
,__mul__
и__truediv__
для выполнения сложения, вычитания, умножения и деления двух рациональных чисел соответственно.
- Операции сложения, вычитания, умножения и деления должны выполняться математически корректно для рациональных чисел, а результатом должен быть новый экземпляр класса
RationalNumber
.
- Класс должен сокращать рациональное число до его простейшей формы, деля числитель и знаменатель на их наибольший общий делитель (НОД).
- Класс должен реализовать магический метод
__str__
, который возвращает строку<numerator> / <denominator>
в сокращенном виде.
Ввод | Вывод |
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