इस समस्या में, हमें एक संख्या n दी गई है। हमारा कार्य n के गुणनखंडों के सभी संयोजनों को प्रिंट करना है।
आइए विषय को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं -
Input: 24 Output: 2 2 2 3 2 4 3 8 3 4 6 2 12
इसके लिए हम रिकर्सन फ़ंक्शन का उपयोग करेंगे जो संख्या के कारकों का संयोजन ढूंढेगा। और हम अपने सभी संयोजनों को सरणी की एक सरणी में संग्रहीत करेंगे।
उदाहरण
यह कोड हमारे समाधान के कार्यान्वयन को दिखाएगा।
#include<bits/stdc++.h> using namespace std; vector<vector<int>> factor_Combo; void genreateFactorCombinations(int first, int eachFactor, int n, vector<int>factor) { if (first>n || eachFactor>n) return; if (eachFactor == n){ factor_Combo.push_back(factor); return; } for (int i = first; i < n; i++) { if (i*eachFactor>n) break; if (n % i == 0){ factor.push_back(i); genreateFactorCombinations(i, i*eachFactor, n, factor); factor.pop_back(); } } } void printcombination() { for (int i = 0; i < factor_Combo.size(); i++){ for (int j = 0; j < factor_Combo[i].size(); j++) cout<<factor_Combo[i][j]<<"\t"; cout<<endl; } } int main() { int n = 24; vector<int>single_result_list; cout<<"All Factor combinations of "<<n<<" are :\n"; genreateFactorCombinations(2, 1, n, single_result_list); printcombination(); return 0; }
आउटपुट
All Factor combinations of 24 are − 2 2 2 3 2 2 6 2 3 4 2 12 3 8 4 6हैं