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

C++-এ অ্যারের সংখ্যা যেসবের প্রাইম ফ্যাক্টর X-এর প্রাইম ফ্যাক্টরের সাবসেট প্রিন্ট করা

এই সমস্যায় N সংখ্যার একটি সেট এবং একটি সংখ্যা X দেওয়া আছে। এবং আমাদের অ্যারের যেসব সংখ্যার প্রাইম ফ্যাক্টর সেট X-এর প্রাইম ফ্যাক্টর সেটের সাবসেট সেগুলো প্রিন্ট করতে হবে।

উদাহরণ

ইনপুট: X = 30, array = {2, 3, 6, 10, 12}
আউটপুট: 2 3 6

এই সমস্যাটি সমাধানের জন্য অ্যারের উপাদানগুলো ট্রাভার্স করতে হবে। এবং এই উপাদানটিকে gcd দিয়ে ভাগ করতে হবে (উপাদান, x)। এই ভাগ প্রক্রিয়া চলবে যতক্ষণ না gcd ১ হয়। এবং অবশিষ্ট সংখ্যাটি প্রিন্ট করা হবে।

বাস্তবায়ন

#include <bits/stdc++.h> 
using namespace std; 

void printPrimeSet(int a[], int n, int x) { 
    bool flag = false; 
    for (int i = 0; i < n; i++) { 
        int num = a[i]; 
        int g = __gcd(num, x); 
        while (g != 1) { 
            num /= g; 
            g = __gcd(num, x); 
        } 
        if (num == 1) { 
            flag = true; 
            cout << a[i] << " "; 
        } 
    } 
    if (!flag) 
        cout << "There are no such numbers"; 
} 

int main() { 
    int x = 60; 
    int a[] = { 2, 5, 10, 7, 17 }; 
    int n = sizeof(a) / sizeof(a[0]); 
    cout << "Numbers whose set of prime numbers is subset of set of prime factor of " << x << "\n"; 
    printPrimeSet(a, n, x); 
    return 0; 
}

আউটপুট

Numbers whose set of prime numbers is a subset of the set of prime factor of 60
2 5 10
  1. C++-তে অ্যারেতে থাকা সব প্রাইম নম্বরের গুণফল বের করা

  2. অনসcaffoldড গ্রাফের সব সাইকেল প্রিন্ট করা C++-তে

  3. ৩ এবং ৫ দ্বারা বিভাজ্য সংখ্যা প্রিন্ট (C++)

  4. C++ প্রোগ্রাম: সেট তৈরির জন্য সব সাবসেট জোড়া জেনারেট করা