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

C++-এ একটি রেঞ্জে নন-ট্রানজিটিভ কো-প্রাইম ট্রিপলেট বের করা


ধরুন আমাদের লোয়ার এবং আপার বাউন্ড দেওয়া আছে, এবং আমাদের নন-ট্রানজিটিভ ট্রিপলেট (x, y, z) বের করতে হবে, যাতে পেয়ার (x, y) কো-প্রাইম (GCD ১), পেয়ার (y, z) কো-প্রাইম, কিন্তু পেয়ার (x, z) কো-প্রাইম নয়। উদাহরণস্বরূপ, লোয়ার বাউন্ড ২ এবং আপার বাউন্ড ১০ হলে উপাদানগুলো {2, 3, 4, 5, 6, 7, 8, 9, 10}, এখানে সম্ভব ট্রিপলেট (4, 7, 8), এখানে (4, 7) এবং (7, 8) কো-প্রাইম, কিন্তু (4, 8) কো-প্রাইম নয়।

আমরা নেইভ (naïve) পদ্ধতি ব্যবহার করে সমাধান করব। লোয়ার বাউন্ড এবং আপার বাউন্ডের মধ্যে সব সম্ভাব্য ট্রিপলেট জেনারেট করব, তারপর শর্তগুলো মিলিয়ে দেখব।

উদাহরণ

#include <iostream> #include <algorithm> using namespace std; bool isCoprime(int a, int b){    return (__gcd(a, b) == 1); } void tripletInRange(int left, int right) {    bool flag = false;    int A, B, C;    // Generate and check for all possible triplets    // between L and R    for (int a = left; a <= right; a++) {       for (int b = a + 1; b <= right; b++) {          for (int c = b + 1; c <= right; c++) {             if (isCoprime(a, b) && isCoprime(b, c) && ! isCoprime(a, c)) {                flag = true;                A = a;                B = b;                C = c;                break;             }          }       }    }    if (flag == true) {       cout << "(" << A << ", " << B << ", " << C << ")" << " is one       such possible triplet between " << left << " and " << right << endl;    } else {       cout << "No Such Triplet exists between " << left << " and " << right << endl;    } } int main() {    int left = 2, right = 10;    tripletInRange(left, right); }

আউটপুট

(8, 9, 10) is one such possible triplet between 2 and 10

  1. C++-এ অ্যারেতে রেঞ্জের গড় (Mean of Range in Array)

  2. C++-এ অ্যারেতে সর্বোচ্চ ট্রিপলেট যোগফল (Maximum Triplet Sum in Array)

  3. C++-এ প্রাইম ট্রিপলেট

  4. নির্দিষ্ট রেঞ্জে সেট বিট কপি করা C++-এ