Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

พิมพ์ตัวประกอบทั้งหมดใน C++


ในปัญหานี้ เราได้รับตัวเลข 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