Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<vector>
- using namespace std;
- vector<long> divs(vector<vector<int>> fs, int s, int e){
- vector<long> r;
- if (e == s){
- vector<int> fa = fs[s];
- long c = 1, p = 0;
- while (p <= fa[1]){
- r.push_back(c);
- c *= fa[0];
- p++;
- }
- return r;
- }
- vector<long> sr = divs(fs, s + 1, e);
- //cout << "s, e: " << s + 1 << ", " << e << "\n";
- //for (int i = 0; i < sr.size(); i++){
- //cout << sr[i] << ", ";
- //}cout << endl;
- vector<int> fa = fs[s];
- long c = 1, p = 0;
- while (p <= fa[1]){
- // r.add(p);
- for (long n : sr){
- r.push_back(n*c);
- }
- c *= fa[0];
- p++;
- }
- return r;
- }
- int main(){
- vector<vector<int>> fs;
- fs.push_back({ 2, 2 });
- fs.push_back({ 3, 1 });
- //fs.push_back({ 5, 3 });
- vector<long> d = divs(fs, 0, fs.size() - 1);
- for (int i = 0; i < d.size(); i++){
- cout << d[i] << ", ";
- }cout << endl;
- getchar();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment