#include <bits/stdc++.h>
int cnt[27];
char str[1010];
int l;
int p[1010];
int h;
void init() {
  h = 0;
  p[0] = 2;
  bool flag;
  for (int i = 3; i < 1010; i++) {
    flag = 1;
    for (int j = 0; j <= h; j++) {
      if (i % p[j] == 0) {
        flag = 0;
        break;
      }
    }
    if (flag) {
      h++;
      p[h] = i;
    }
  }
}
int ok;
int main() {
  while (~scanf("%s", str)) {
    l = strlen(str);
    if (l <= 3) {
      printf("YES\n%s\n", str);
      continue;
    }
    init();
    memset(cnt, 0, sizeof(cnt));
    ok = 0;
    for (int i = 0; i < l; i++) {
      cnt[str[i] - 'a']++;
    }
    int k = 0;
    while (2 * p[k] <= l) {
      k++;
    }
    for (int i = 1; i <= l; i++) {
      for (int j = 0; j < k; j++) {
        if (i % p[j] == 0) {
          ok++;
          break;
        }
      }
    }
    int flag = -1;
    for (int i = 0; i < 27; i++) {
      if (cnt[i] >= ok) {
        flag = i;
        break;
      }
    }
    if (flag == -1) {
      printf("NO\n");
      continue;
    }
    cnt[flag] -= ok;
    int god = 0;
    for (int i = 1; i <= l; i++) {
      int mei = 0;
      for (int j = 0; j < k; j++) {
        if (i % p[j] == 0) {
          str[i] = 'a' + flag;
          mei = 1;
          break;
        }
      }
      if (!mei) {
        while (!cnt[god]) {
          god++;
        }
        str[i] = 'a' + god;
        cnt[god]--;
      }
    }
    str[l + 1] = '\0';
    printf("YES\n%s\n", str + 1);
  }
}
