#include <bits/stdc++.h>
using namespace std;
string s, ans;
vector<pair<int, char> > v(26);
bool prime(int a) {
  for (int i = 2; i * i <= a; i++) {
    if (a % i == 0) return false;
  }
  return true;
}
void check() {
  if (v[0].first < 0) {
    printf("NO");
    exit(0);
  }
}
int main() {
  cin >> s;
  ans = s;
  for (int i = 0; i < 26; i++) v[i].second = 'a' + i;
  for (int i = 0; i < s.size(); i++) {
    v[s[i] - 'a'].first++;
  }
  sort(v.begin(), v.end());
  reverse(v.begin(), v.end());
  char mx = v[0].second;
  vector<char> d;
  for (int i = 0; i < s.size(); i++) {
    if (s[i] != mx) {
      d.push_back(s[i]);
    }
  }
  int cnt = 0;
  for (int i = 0; i < s.size(); i++) {
    int j = i + 1;
    if (j == 1 || (2 * j > s.size() && prime(j))) {
      if (cnt < d.size())
        ans[i] = d[cnt++];
      else {
        ans[i] = mx;
        v[0].first--;
        check();
      }
    } else {
      ans[i] = mx;
      v[0].first--;
      check();
    }
  }
  printf("YES\n");
  cout << ans;
  return 0;
}
