1 #include <iostream> 2 #include <sstream> 3 #include <string> 4 #include <algorithm> 5 #include <vector> 6 #include <cmath> 7 using namespace std; 8 9 #define GI ({int _t; scanf("%d", &_t); _t;}) 10 #define FOR(i, a, b) for (int i=a; i<b; i++) 11 #define REP(i, a) FOR(i, 0, a) 12 template<class T> string toString(T n){ostringstream ost;ost<<n;ost.flush();return ost.str();} 13 int toInt(string s){int r=0;istringstream sin(s);sin>>r;return r;} 14 #define DBG(x) cout << #x << "::" << x << endl; 15 #define DBGV(_v) { REP(_i, _v.size()) { cout << _v[_i] << "\t";} cout << endl;} 16 17 int main() { 18 int cnt = GI, num; 19 while (cnt--) { 20 vector <int> res; 21 cin >> num; 22 if (num < 10) { 23 printf("%d\n", num); 24 continue; 25 } 26 for (int i = 9; i>=2; i--) { 27 while (num%i == 0) { 28 res.push_back(i); 29 num /= i; 30 } 31 } 32 if (num != 1) { 33 printf("-1\n"); continue; 34 } 35 sort(res.begin(), res.end()); 36 int number = 0; 37 //DBGV(res); 38 for (int i=res.size()-1, j=0; i >=0; i--, j++) { 39 number += (res[i])*(int)pow((double)10, (double)j); 40 } 41 printf("%d\n", number); 42 } 43 return 0; 44 }