#include <bits/stdc++.h>
int ss[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53};
int n, a[200], f[120][(1 << 16) + 10], b[100], g[120][(1 << 16) + 10];
void outit(int x, int y) {
  if (y == 0) return;
  outit(x & ~b[g[y][x]], y - 1);
  printf("%d", g[y][x]);
  if (y == n)
    printf("\n");
  else
    printf(" ");
}
int main() {
  int x, i, j, k, ans;
  scanf("%d", &n);
  for (i = 1; i <= n; i++) scanf("%d", &a[i]);
  memset(b, 0, sizeof(b));
  for (i = 1; i <= 58; i++)
    for (j = 0; j < 16; j++)
      if (i % ss[j] == 0) b[i] |= 1 << j;
  for (i = 1; i <= n; i++)
    for (j = 0; j < 1 << 16; j++) f[i][j] = 1000000000;
  for (i = 1; i <= n; i++) {
    for (j = 0; j < 1 << 16; j++) {
      for (k = 1; k <= 58; k++)
        if ((j & b[k]) == 0)
          if (f[i][j | b[k]] > f[i - 1][j] + fabs(a[i] - k)) {
            f[i][j | b[k]] = f[i - 1][j] + fabs(a[i] - k);
            g[i][j | b[k]] = k;
          }
    }
  }
  ans = 1000000000;
  for (i = 0; i < 1 << 16; i++)
    if (f[n][i] < ans) {
      ans = f[n][i];
      x = i;
    }
  outit(x, n);
  printf("\n");
}
