मान लीजिए, हमें दो बिंदु (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