Fraction क्लास

आप एक सरल कैलकुलेटर विकसित कर रहे हैं, और आपका कार्य एक Python क्लास Fraction बनाना है जो एक गणितीय भिन्न को दर्शाता है।
इस क्लास में 5 मैजिक मेथड्स होने चाहिए:
  • __add__: यह मेथड एक अन्य Fraction ऑब्जेक्ट को आर्गुमेंट के रूप में लेगा और एक नया Fraction ऑब्जेक्ट लौटाएगा जो मूल Fraction और आर्गुमेंट Fraction के योग के बराबर है।
  • __sub__: यह मेथड एक अन्य Fraction ऑब्जेक्ट को आर्गुमेंट के रूप में लेगा और एक नया Fraction ऑब्जेक्ट लौटाएगा जो मूल Fraction में से आर्गुमेंट Fraction को घटाने के परिणाम के बराबर है।
  • __mul__: यह मेथड एक अन्य Fraction ऑब्जेक्ट को आर्गुमेंट के रूप में लेगा और एक नया Fraction ऑब्जेक्ट लौटाएगा जो मूल Fraction और आर्गुमेंट Fraction के गुणनफल के बराबर है।
  • __truediv__: यह मेथड एक अन्य Fraction ऑब्जेक्ट को आर्गुमेंट के रूप में लेगा और एक नया Fraction ऑब्जेक्ट लौटाएगा जो मूल Fraction को आर्गुमेंट Fraction से विभाजित करने के परिणाम के बराबर है। यदि आर्गुमेंट Fraction का अंश शून्य है, तो यह मेथड ZeroDivisionError उठाना चाहिए।
  • __str__: यह मेथड भिन्न को numerator / denominator प्रारूप में लौटाना चाहिए। मेथड भिन्न का स्ट्रिंग स्वरूप उसके सरलतम रूप में लौटाएगा (उदाहरण के लिए, "4 / 6" के बजाय "2 / 3")। भिन्न को सरल बनाने के लिए, अंश और हर (न्यूमेरेटर और डिनॉमिनेटर) को उनके महत्तम समापवर्तक (GCD) से विभाजित करें।
Fraction क्लास को दो पैरामीटर्स, numerator और denominator, के साथ इंस्टैंशिएट किया जा सकता है। दोनों पैरामीटर्स पूर्णांक होने चाहिए, और यदि denominator प्रदान नहीं किया गया है तो उसका डिफ़ॉल्ट मान 1 होना चाहिए। यदि डिनॉमिनेटर शून्य है, तो __init__ मेथड में प्रोग्राम को ValueError उठाना चाहिए।
इनपुट
आउटपुट
f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1+f2; print(f3)
5 / 6
f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1-f2; print(f3)
1 / 6
f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1 * f2; print(f3)
1 / 6
f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1 / f2; print(f3)
3 / 2
f1 = Fraction(1, 2); f2 = Fraction(0, 3); f3 = f1 / f2; print(f3)
ZeroDivisionError: You can't divide by zero!
f1 = Fraction(1, 0);
ValueError: The denominator cannot be zero!
 

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