func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long MOD = 998244353;   const double oula = 0.57721566490153286060651209;   using namespace std;   map<long long, string> mp;   int main() {     std::ios::sync_with_stdio(false);     long long n;     cin >> n;     long long nn = sqrt(n);     string tmp;     for (long long i = 2; i <= nn; i++) {       long long num = i * i;       int co = 2;       while (num <= n) {         tmp = to_string(i) +  ^  + to_string(co);         if (!mp.count(num)) mp[num] = to_string(num);         if (mp[num].size() > tmp.size()) mp[num] = tmp;         co++;         num *= i;       }     }     string ans = to_string(n);     map<long long, string>::iterator it;     for (it = mp.begin(); it != mp.end(); it++) {       tmp =   ;       long long a = n / it->first, b = n % it->first;       if (a > 1) {         if (mp.count(a))           tmp = mp[a];         else           tmp = to_string(a);         tmp +=  * ;       }       tmp += it->second;       if (b) tmp = tmp +  +  + (mp.count(b) ? mp[b] : to_string(b));       if (ans.size() > tmp.size()) ans = tmp;     }     cout << ans << endl;   }   