কম্পিউটার টিউটোরিয়াল

দেওয়া রেঞ্জে ভিন্ন জোড়া (x, y) খুঁজে বের করা যাতে x, y কে ভাগ করত পারে C++-এ

এখানে আমরা একটি আকর্ষণীয় সমস্যা দেখব, যেখানে আমাদের একটি জোড়া (x, y) খুঁজে বের করতে হবে, যাতে x এবং y দেওয়া রেঞ্জে থাকে অর্থাৎ l ≤ x, y ≤ r, এবং এই জোড়ার বৈশিষ্ট্য হবে x, y কে ভাগ করত পারে। যদি একাধিক জোড়া থাকে, তবে শুধুমাত্র একটি বেছে নেওয়া হবে।

সমাধানের পদ্ধতি

এই সমস্যাটি O(1) সময়ে সমাধান করা যায়। যদি নিম্ন সীমা l এবং 2l পাওয়া যায়। আমরা জানি y/x-এর ন্যূনতম মান হতে পারে ২, এবং যদি রেঞ্জে কোনো বড় মান থাকে তবে ২ও রেঞ্জে থাকবে। এবং যদি x বাড়ানো হয়, তবে 2x-ও বাড়বে, তাই l এবং 2l হল দেওয়া রেঞ্জে পড়ে যাওয়ার ন্যূনতম জোড়া।

উদাহরণ কোড

#include <iostream>
using namespace std;

void getPair(int l, int r) {
    int x = l;
    int y = 2 * l;
    cout << "(" << x << ", " << y << ")" << endl;
}

int main() {
    int l = 3, r = 6;
    getPair(l, r);
    return 0;
}

আউটপুট

(3, 6)
  1. C++ ব্যবহার করে এমন একটি সংখ্যা x বের করা যাতে x এবং তার ডিজিটের যোগফল n-র সমান হয়

  2. C++ ব্যবহার করে অ্যারেতে a % b = k সেটি করার সব জোড়া (a, b) বের করা

  3. দেওয়া পার্থক্যের সাথে একটি জোড়া খুঁজে বের করা C++-এ

  4. দেওয়া সংখ্যা n-এর জন্য x + x-এর অঙ্কের যোগফল = n এমন x খুঁজে বের করা C++-এ