func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long OO = 1e18;   vector<int> prs = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29};   long long solve(long long num, int in, int lst) {     if (in == prs.size() || lst == 0) return num == 1 ? 1 : -1;     long long res = -1;     long long cur = 1;     long long cp = num;     for (int i = 0; i <= lst; i++) {       if (num < (i + 1) || cur > OO || (i && cur > OO / prs[in])) break;       if (i) cur *= prs[in];       if (num % (i + 1) != 0) continue;       long long can = solve(num / (i + 1), in + 1, i);       if ((res == -1 && can != -1) || (can != -1 && can < (res + cur - 1) / cur))         res = cur * can;     }     return res;   }   int main() {     long long n;     cin >> n;     cout << solve(n, 0, 100);   }   