View Code of Problem 91

#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<climits>
#include<cmath>

using namespace std;

vector<int> res;

void dfs(int num) {

	int flag = 0;
	for (int i = sqrt(num); i >= 2; i--) {

		if (num % i == 0) {

			dfs(i);

			dfs(num / i);

			flag = 1;

			break;
		}
	}

	if (flag == 0)
		res.push_back(num);
}

int main()
{
	int n;
	cin >> n;

	dfs(n);

	sort(res.begin(), res.end());

	cout << n << "=";
	for (int i = 0; i < res.size(); i++) {

		cout << res[i];

		if (i != res.size() - 1)
			cout << "*";
	}

	cout << endl;
}

Double click to view unformatted code.


Back to problem 91