func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   inline void cmn(T &a, const T &b) {     if (b < a) a = b;   }   template <class T>   inline void cmx(T &a, const T &b) {     if (b > a) a = b;   }   const double eps = 1e-9;   const long double leps = 1e-14;   string inp;   const int MN = 1000 + 100;   int cnt[MN];   bool mp[MN];   bool mark[MN];   int n, cc;   int main(int argc, char *argv[]) {     ios_base::sync_with_stdio(false);     cin >> inp;     n = ((int((inp).size())));     for (int i = 2; i <= n; i++)       if (mp[i] == 0)         for (int j = 2 * i; j <= n; j += i) mp[j] = 1;     for (int i = 0; i < n; i++) cnt[inp[i] -  a ]++;     for (int i = 2; i <= n; i++)       if (i == 2 || mp[i] || (!mp[i] && 2 * i <= n)) cc++, mark[i] = 1;     bool fnd = false;     cerr << (( cc )) <<   =   << ((cc)) <<     <<   n ;     for (int i = 0; i < 30; i++)       if (cnt[i] >= cc) {         fnd = true;         for (int j = 0; j < n; j++)           if (mark[j + 1]) inp[j] = (i +  a ), cnt[i]--;         break;       }     if (!fnd) {       cout <<  NO  <<   n ;       return 0;     }     cout <<  YES  <<   n ;     int p = 0;     for (int i = 0; i < n; i++)       if (!mark[i + 1]) {         while (cnt[p] == 0) p++;         inp[i] = (p +  a ), cnt[p]--;       }     cout << inp <<   n ;     return 0;   }   