Pagini recente » Cod sursa (job #667905) | Cod sursa (job #648777) | Cod sursa (job #428600) | Cod sursa (job #1970403) | Cod sursa (job #3233327)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
void findCompositions(int N, int start, vector<int>& current, vector<vector<int>>& results) {
if (N == 1) {
current.push_back(1);
results.push_back(current);
current.pop_back();
return;
}
for (int i = start; i <= N; ++i) {
if (N % i == 0) {
current.push_back(i);
findCompositions(N / i, i, current, results);
current.pop_back();
}
}
}
int main() {
ifstream infile("desc.in");
ofstream outfile("desc.out");
long long N;
int K;
infile >> N >> K;
vector<vector<int>> results;
vector<int> current;
findCompositions(N, 2, current, results);
sort(results.begin(), results.end());
outfile << results.size() << endl;
if (K <= results.size()) {
for (int num : results[K - 1]) {
outfile << num << " ";
}
outfile << endl;
}
infile.close();
outfile.close();
return 0;
}