func_code_string: #include <bits/stdc++.h>   using namespace std;   vector<int> pr;   bool isp[1001];   void p() {     memset(isp, true, sizeof isp);     isp[0] = isp[1] = false;     for (int i = 2; i < 1001; ++i) {       if (!isp[i]) continue;       pr.push_back(i);       for (int j = 2 * i; j < 1001; j += i) isp[j] = false;     }   }   int main() {     p();     string s;     cin >> s;     int n = s.length();     bool ans = 0;     set<int> st;     for (int i = 0; i < pr.size(); ++i) {       if (pr[i] > n / 2) break;       for (int j = 1; pr[i] * j <= n; ++j) st.insert(pr[i] * j);     }     int cnt[26], mx = 0, ch = -1;     memset(cnt, 0, sizeof cnt);     for (int i = 0; i < n; ++i) {       cnt[s[i] -  a ]++;       if (mx < cnt[s[i] -  a ]) {         mx = cnt[s[i] -  a ];         ch = s[i];       }     }     if (mx >= st.size()) {       cout <<  YES  << endl;       string ans = s;       for (int i = 0; i < n; ++i) ans[i] =    ;       for (set<int>::iterator it = st.begin(); it != st.end(); ++it)         ans[*it - 1] = ch;       cnt[ch -  a ] -= st.size();       int idx = 0;       for (int i = 0; i < 26; ++i)         for (int j = 0; j < cnt[i]; ++j) {           while (ans[idx] !=    ) ++idx;           ans[idx] = i +  a ;         }       cout << ans << endl;     } else       cout <<  NO  << endl;     return 0;   }   