How to print all combinations of factors of a number in C++

1 Answer

0 votes
#include <iostream> 
#include <vector> 

std::vector<std::vector<int>> resultvecofvec; 
    
void genreateFactorCombinations(int start, int factor, int n, std::vector<int>result) {  
    if (start > n || factor > n)  
        return;  

    if (factor == n) {  
        resultvecofvec.push_back(result);  
        return;  
    }  
  
    for (int i = start; i < n; i++) {  
        if (i * factor > n)  
            break;  

        if (n % i == 0) {  
            result.push_back(i);  
            genreateFactorCombinations(i, i * factor, n, result);  
            result.pop_back();  
        }  
    }  
}  
  
void factorsCombinations(int n) {  
    std::vector<int> result; 

    genreateFactorCombinations(2, 1, n, result);  
}  
  
int main() 
{ 
    int n = 24;  

    factorsCombinations(n);  

    for (int i = 0; i < resultvecofvec.size(); i++) {  
        for (int j = 0; j < resultvecofvec[i].size(); j++)  
            std::cout << resultvecofvec[i][j] << " ";  
        std::cout << "\n"; 
    } 
    return 0; 
} 



/*
run:

2 2 2 3 
2 2 6 
2 3 4 
2 12 
3 8 
4 6 

*/

 



answered Jul 15, 2020 by avibootz
...