मान लीजिए, हमें दो बिंदु (p1, q1) और (p2, q2) प्रदान किए गए हैं। यदि दो दिए गए बिंदुओं के बीच एक सीधी रेखा खींची जाती है, तो हमें पूर्णांक निर्देशांकों की संख्या ज्ञात करनी होगी (x और y दोनों मान पूर्णांक हैं)। अंकों की संख्या लौटा दी जाती है।
इसलिए, यदि इनपुट p1 =3, q1 =3, p2 =6, q2 =6 जैसा है, तो आउटपुट 2 होगा यदि हम सीधी रेखा खींचते हैं, तो हम देखेंगे कि बिंदु (5,5) और (6 ,6) सीधी रेखा पर स्थित हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- एक फ़ंक्शन परिभाषित करें gcd_find() । इसमें x,y
- . लगेगा
- यदि y, 0 के समान है, तो
- रिटर्न x
- वापस gcd_find(y, x mod y)
- यदि y, 0 के समान है, तो
मुख्य विधि/कार्य से, निम्न कार्य करें -
- वापस gcd_find(|p2 - p1| , |q2 - q1|) - 1
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def gcd_find(x,y): if y == 0: return x return gcd_find(y,x % y) def solve(p1,q1,p2,q2): return gcd_find(abs(p2 - p1),abs(q2 - q1)) - 1 print(solve(3,3,6,6))
इनपुट
3,3,6,6
आउटपुट
2