func_code_string: #include <bits/stdc++.h>   using namespace std;   map<long long, string> mp;   long long n;   int main() {     scanf( %I64d , &n);     for (long long i = 2; i * i <= n; i++) {       for (long long j = i * i, k = 2; j <= n; j *= i, k++) {         string tmp = to_string(i) +  ^  + to_string(k);         if (!mp.count(j)) mp[j] = to_string(j);         if (tmp.size() < mp[j].size()) mp[j] = tmp;       }     }     string ans = to_string(n);     for (auto x : mp) {       string tmp =   ;       long long k = n / x.first, b = n % x.first;       if (k > 1) tmp = (mp.count(k) ? mp[k] : to_string(k)) +  * ;       tmp += x.second;       if (b) tmp +=  +  + (mp.count(b) ? mp[b] : to_string(b));       if (tmp.size() < ans.size()) ans = tmp;     }     cout << ans << endl;     return 0;   }   