题意:给你一个大于0的整数n,请你找到最小的整数q,使得q中所有数字相乘等于n。
方法:贪心法。
#include <iostream>
#include <iomanip>
#include <string>
#include <cstring>
#include <cstdio>
#include <queue>
#include <stack>
#include <algorithm>
#include <cmath>
#include <ctime>
using namespace std;
int main()
{
#ifdef Local
freopen("a.in", "r", stdin);
#endif
int t = 0;
cin >> t;
while (t--)
{
int n = 0, ans = 0,i = 0, j = 0, flag = 1;
cin >> n;
if (1 == n)
cout << "1" << endl;
else
{
while(n != 1)
{
flag = 1;
for (i = 9; i >= 2; i--)
{
if (0 == n % i)
{
ans += i * pow(10, j++);
n /= i;
flag = 0;
}
}
if (flag)
{
cout << "-1" << endl;
break;
}
}
if (!flag)
cout << ans << endl;
}
}
return 0;
}