#include <bits/stdc++.h>
int flag[1200], pim[1200], tol;
void init() {
  for (int i = 2; i < 1200; i++) {
    if (!flag[i]) pim[tol++] = i;
    for (int j = 0; j < tol && i * pim[j] < 1200; j++) {
      flag[i * pim[j]] = 1;
      if (i % pim[j] == 0) break;
    }
  }
}
char s[1200];
int num[26];
int main() {
  init();
  scanf("%s", s);
  int len = 0;
  for (int i = 0; s[i]; i++) {
    num[s[i] - 'a']++;
    len++;
  }
  int y = 0;
  for (int i = 0; i < 26; i++) {
    if (num[y] < num[i]) y = i;
  }
  int x = 0;
  for (int i = 1; i <= len; i++) {
    for (int j = 0; pim[j] <= len / 2; j++) {
      if (i % pim[j] == 0) {
        x++;
        break;
      }
    }
  }
  if (num[y] < x)
    puts("NO");
  else {
    puts("YES");
    for (int i = 1; i <= len; i++) {
      int f = 0;
      for (int j = 0; pim[j] <= len / 2; j++) {
        if (i % pim[j] == 0) {
          f = 1;
          break;
        }
      }
      if (f)
        printf("%c", y + 'a');
      else {
        f = 0;
        for (int j = 0; j < 26; j++) {
          if (j != y && num[j]) {
            printf("%c", j + 'a');
            num[j]--;
            f = 1;
            break;
          }
        }
        if (!f) printf("%c", y + 'a');
      }
    }
    puts("");
  }
}
