ধরুন, আমাদের দুটি পয়েন্ট (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