#include <iostream>
#include <vector>

using namespace std;

vector<int> path;

void OutputRec(int max, int value)
{
	if (value == 1) {
		for (int i = 0; i < path.size(); i++) cout << path[i] << " ";
		if (path.size() == 1) cout << "1";
		cout << endl;
		return;
	}
	
	for (int i = max; i > 1; i--)
	{
		if (value % i == 0) {
			path.push_back(i);
			OutputRec(i, value / i);
			path.pop_back();
		}
	}
}

void Output(int value)
{
	cout << "Result for " << value << ": " << endl;
	path = vector<int>();
	OutputRec(value, value);
}

int main() {
	Output(4);
	Output(16);
	Output(36);
	Output(256);
	
	return 0;
}