এই সমস্যায়, আমাদেরকে N সংখ্যার একটি সেট এবং একটি সংখ্যা X দেওয়া হয়েছে। এবং আমাদের অ্যারে থেকে সমস্ত সংখ্যা প্রিন্ট করতে হবে যেগুলির মৌলিক গুণনীয়কগুলির সেট হল এর সেটের একটি উপসেট X.
এর প্রধান গুণনীয়কসমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক
Input: X= 30 , array = {2, 3, 6, 10, 12} Output : 2 3 6
এই সমস্যাটি সমাধান করার জন্য, আমাদের অ্যারের উপাদানগুলি অতিক্রম করতে হবে। এবং এই উপাদানটিকে gcd দিয়ে ভাগ করুন এর (উপাদান, x)। জিসিডি 1 না হওয়া পর্যন্ত বিভাজন পুনরাবৃত্তি করুন। এবং অবশিষ্ট সংখ্যা প্রিন্ট করুন।
উদাহরণ
#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; }
আউটপুট
যে সংখ্যার মৌলিক সংখ্যার সেট 60
এর মৌলিক গুণনীয়কের সেটের একটি উপসেট2 5 10