मान लीजिए कि हमारे पास दो नंबर ए और बी हैं। अब प्रत्येक ऑपरेशन में, हम किसी एक संख्या का चयन कर सकते हैं और इसे 1 से बढ़ा सकते हैं या इसे 1 से घटा सकते हैं। हमें कम से कम ऑपरेशन की आवश्यकता है जैसे कि सबसे बड़ा सामान्य भाजक A और B के बीच 1 नहीं है।
इसलिए, यदि इनपुट ए =8, बी =9 जैसा है, तो आउटपुट 1 होगा, क्योंकि हम 9 का चयन कर सकते हैं और इसे 10 तक बढ़ा सकते हैं, इसलिए 8 और 10 कोप्राइम नहीं हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
-
अगर a और b का gcd 1 के समान नहीं है, तो
-
वापसी 0
-
-
अगर a सम है या b सम है, तो
-
वापसी 1
-
-
अन्यथा,
-
यदि a + 1 और b का gcd 1 के समान नहीं है या a-1 का gcd और b 1 के समान नहीं है या a और b-1 का gcd 1 के समान नहीं है या a का gcd और b + 1 समान नहीं है 1, फिर
-
वापसी 1
-
-
अन्यथा,
-
वापसी 2
-
-
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें
उदाहरण
from math import gcd class Solution: def solve(self, a, b): if gcd(a, b) != 1: return 0 if a % 2 == 0 or b % 2 == 0: return 1 else: if (gcd(a + 1, b) != 1 or gcd(a - 1, b) != 1 or gcd(a, b - 1) != 1 or gcd(a, b + 1) != 1): return 1 else: return 2 ob = Solution() A = 8 B = 9 print(ob.solve(A, B))
इनपुट
8,9
आउटपुट
1