#include <bits/stdc++.h>
using namespace std;
int p[1305], tot;
bool g[1305], q[1305];
char s[1305], ans[1305];
int vis[33];
void init() {
  int i, j;
  for (i = 2; i * i < 1305; i++)
    for (j = i * i; j < 1305; j += i) g[j] = 1;
  g[1] = 1;
  for (i = 2; i < 1305; i++)
    if (!g[i]) p[tot++] = i;
}
int main() {
  int i, j;
  init();
  int len = strlen(gets(s + 1));
  if (len == 1) {
    puts("YES");
    puts(s + 1);
    return 0;
  }
  for (i = 1; i <= len; i++) vis[s[i] - 'a']++;
  int u = lower_bound(p, p + tot, len - 1) - p;
  for (i = 0; i <= u; i++)
    for (j = 1; j <= len / p[i]; j++)
      if (len / p[i] >= 2) q[j * p[i]] = 1;
  int tt = 0;
  for (i = 1; i <= len; i++)
    if (q[i]) tt++;
  for (i = 0; i < 26; i++)
    if (vis[i] >= tt) break;
  if (i == 26)
    puts("NO");
  else {
    puts("YES");
    int f = i;
    int w = vis[i] - tt;
    int x = 0;
    for (i = 1; i <= len; i++) {
      if (q[i] && vis[f] > 0)
        printf("%c", f + 'a'), vis[f]--;
      else {
        for (j = 0; j < 26; j++)
          if (vis[j] > 0 && j != f) {
            printf("%c", j + 'a');
            vis[j]--;
            break;
          } else if (vis[j] > 0 && j == f && x < w) {
            printf("%c", j + 'a');
            x++;
            vis[j]--;
            break;
          }
      }
    }
    puts("");
  }
  return 0;
}
