func_code_string: #include <bits/stdc++.h>   using namespace std;   map<long long, string> dic;   int main() {     long long n;     scanf( %lld , &n);     for (long long i = 2; (long long)i * i <= n; i++) {       for (long long j = i * i, p = 2; j <= n; j *= i, p++) {         string str = to_string(i) +  ^  + to_string(p);         if (dic.find(j) == dic.end())           dic[j] = str;         else if (dic[j].size() > str.size())           dic[j] = str;       }     }     string ans = to_string(n);     for (auto it = dic.begin(); it != dic.end(); it++) {       long long v = it->first;       string str = it->second;       long long mul = n / v;       long long add = n % v;       string all_str;       if (mul > 1) {         string mul_str = to_string(mul);         if (dic.find(mul) != dic.end() && dic[mul].size() < mul_str.size())           all_str += dic[mul] +  * ;         else           all_str += mul_str +  * ;       }       all_str += str;       if (add > 0) {         all_str +=  + ;         string add_str = to_string(add);         if (dic.find(add) != dic.end() && dic[add].size() < add_str.size())           all_str += dic[add];         else           all_str += add_str;       }       if (all_str.size() < ans.size()) ans = all_str;     }     puts(ans.c_str());     return 0;   }   