func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long inf = 0xFFFFFFFFFFFFFFFL;   clock_t time_p = clock();   void time() {     time_p = clock() - time_p;     cerr <<  Time Taken :   << (float)(time_p) / CLOCKS_PER_SEC <<   n ;   }   long long mul_mod(long long a, long long b, long long m) {     long long y =         (long long)((long double)a * (long double)b / m + (long double)1 / 2);     y = y * m;     long long x = a * b;     long long r = x - y;     if (r < 0) {       r = r + m;       y = y - 1;     }     return r;   }   long long pot(long long a, long long b, long long c) {     if (b == 0) return 1;     if (b == 1) return a % c;     long long resp = pot(a, b >> 1, c);     resp = mul_mod(resp, resp, c);     if (b & 1) resp = mul_mod(resp, a, c);     return resp;   }   bool isPrime(long long n) {     long long d = n - 1;     long long s = 0;     if (n <= 3 || n == 5) return true;     if (!(n & 1)) return false;     while (!(d & 1)) {       s++;       d >>= 1;     }     for (long long i = 0; i < 32; i++) {       long long a = rand();       a <<= 32;       a += rand();       a %= (n - 3);       a += 2;       long long x = pot(a, d, n);       if (x == 1 || x == n - 1) continue;       for (long long j = 1; j <= s - 1; j++) {         x = mul_mod(x, x, n);         if (x == 1) return false;         if (x == n - 1) break;       }       if (x != n - 1) return false;     }     return true;   }   pair<long long, long long> breaker(long long n) {     if (isPrime(n)) return {n, 0};     for (long long i = 2; i < n; i++) {       if (isPrime(i) && isPrime(n - i)) return {i, n - i};     }   }   int main(void) {     ios::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     ;     long long n;     cin >> n;     if (isPrime(n)) {       cout << 1 <<   n  << n <<   n ;       return 0;     }     if (isPrime(n - 2)) {       cout << 2 <<   n ;       cout << 2 <<     << n - 2 <<   n ;       return 0;     }     if (isPrime(n - 3)) {       cout << 2 <<   n ;       cout << 3 <<     << n - 3 <<   n ;       return 0;     }     if (isPrime(n - 4)) {       cout << 3 <<   n ;       cout << 2 <<     << 2 <<     << n - 4 <<   n ;       return 0;     }     long long part1 = 0, part2 = 0, part3 = 0;     for (long long i = n - 5; i >= 0; i--) {       if (isPrime(i)) {         part1 = i;         pair<long long, long long> p = breaker(n - i);         part2 = p.first;         part3 = p.second;         break;       }     }     long long ct = 0;     vector<long long> list;     if (part1 != 0) {       ct++;       list.push_back(part1);     }     if (part2 != 0) {       ct++;       list.push_back(part2);     }     if (part3 != 0) {       ct++;       list.push_back(part3);     }     cout << ct <<   n ;     for (long long i = 0; i < (long long)list.size(); i++) cout << list[i] <<    ;     cout <<   n ;     time();     return 0;   }   