চ্যালেঞ্জ
এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা দুটি ইনপুট পূর্ণসংখ্যার গ্রহণ করে i
এবং j
এবং তাদের সর্বশ্রেষ্ঠ সাধারণ বিভাজককে আউটপুট করে; ইউক্লিডিয়ান অ্যালগরিদম ব্যবহার করে গণনা করা (নীচে দেখুন)।
ইনপুট
ইনপুটটি একটি স্পেস-সীমাবদ্ধ স্ট্রিং প্রতিনিধিত্ব হিসাবে i
এবং j
বা দুটি পৃথক পূর্ণসংখ্যার হিসাবে নেওয়া যেতে পারে । আপনি ধরে নিতে পারেন যে পূর্ণসংখ্যা 10,000 এর চেয়ে কম বা তার সমান হবে। আপনি ধরেও নিতে পারেন যে ইনপুট পূর্ণসংখ্যা একে অপরের কাছে প্রধান হতে পারে না।
ইউক্লিডিয়ান ব্রেকডাউন
মধ্যে বড় সংখ্যা i
এবং j
সম্ভব হিসাবে অনেক বার হিসাবে ছোট দ্বারা ভাগ করা হয়। তারপরে, অবশিষ্টটি যুক্ত করা হয়। এই প্রক্রিয়াটি বাকী এবং পূর্ববর্তী সংখ্যার সাথে পুনরাবৃত্তি হয়, যতক্ষণ না বাকী হয়ে যায় 0
।
উদাহরণস্বরূপ, যদি ইনপুটটি ছিল 1599 650
:
1599 = (650 * 2) + 299
650 = (299 * 2) + 52
299 = (52 * 5) + 39
52 = (39 * 1) + 13
39 = (13 * 3) + 0
চূড়ান্ত সংখ্যা,, 13
দুটি ইনপুট পূর্ণসংখ্যার বৃহত্তম সাধারণ বিভাজক। এটি এর মতো ভিজ্যুয়ালাইজ করা যায়:
আউটপুট
আপনার আউটপুট অবশ্যই উপরের ফর্মের ব্রেকডাউন হতে হবে, তার পরে একটি নতুন লাইন এবং জিসিডি হবে। এটি যে কোনও মাধ্যমের মাধ্যমে আউটপুট হতে পারে।
উদাহরণ
ইনপুট
18 27
50 20
447 501
9894 2628
আউটপুট
27 = (18 * 1) + 9
18 = (9 * 2) + 0
9
50 = (20 * 2) + 10
20 = (10 * 2) + 0
10
501 = (447 * 1) + 54
447 = (54 * 8) + 15
54 = (15 * 3) + 9
15 = (9 * 1) + 6
9 = (6 * 1) + 3
6 = (3 * 2) + 0
3
9894 = (2628 * 3) + 2010
2628 = (2010 * 1) + 618
2010 = (618 * 3) + 156
618 = (156 * 3) + 150
156 = (150 * 1) + 6
150 = (6 * 25) + 0
6
দ্রষ্টব্য: আউটপুটগুলি উপরে থাকায় স্পেস করতে হবে না। ব্যবধানটি কেবল স্বচ্ছতার জন্য। প্যারেন্টেসিস প্রয়োজন।
বোনাস
যদি আপনার আউটপুট উপরে বর্ণিত হয় তবে আপনি আপনার স্কোর -10% বোনাস যুক্ত করতে পারেন।