题目的意思就是给出一个数,让你找到一个数各个位数乘积等于它。
只要遍历2到9 ,找能被它整除的就行了。
注意的是要尽量除大的,然后得出的所有因子在从小到大排序输出。
#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
int res[100];
int main () {
ll c,tar;
cin >> c;
while (c--) {
cin >> tar;
ll k = 0;
if (tar < 10) {
cout << tar <<endl;
continue;
}
while (1) {
bool ok = false;
for (int i = 9 ;i > 1;i--) {
if (tar % i == 0) {
tar /= i;
res[k++] = i;
ok = true;
break;
}
}
if (tar == 1) {
sort (res ,res + k);
for (int i = 0 ; i < k ;i++) {
cout << res[i];
}
cout << endl;
break;
}
if (!ok) {
cout << "-1" <<endl;
break;
}
}
}
return 0;
}