#include <bits/stdc++.h>
using namespace std;
const int pr[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53};
const int m = 16;
const int INF = 1e9;
int n, d[110], por[110], vv[110], opr[110];
int f[110][65560], to[110][65560], pi[110][65560];
void init() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d", &d[i]);
  for (int i = 1; i < 59; i++) {
    for (int j = 0; j < m; j++)
      if (!(i % pr[j])) opr[i] |= (1 << j);
  }
  for (int i = 0; i <= n; i++)
    for (int j = 0; j <= 65536; j++) f[i][j] = INF;
}
int main() {
  init();
  f[0][0] = 0;
  for (int i = 1; i <= n; i++) {
    for (int k = 0; k < (1 << m); k++)
      if (f[i - 1][k] != INF) {
        for (int j = 1; j < 59; j++) {
          if (!(k & opr[j]) && f[i][k | opr[j]] > f[i - 1][k] + abs(d[i] - j)) {
            f[i][k | opr[j]] = f[i - 1][k] + abs(d[i] - j);
            to[i][k | opr[j]] = k;
            pi[i][k | opr[j]] = j;
          }
        }
      }
  }
  int ss = INF, yu = 0;
  for (int i = 0; i < (1 << m); i++)
    if (ss > f[n][i]) ss = f[n][i], yu = i;
  for (int i = yu, c = n; c > 0; i = to[c][i], c--) vv[c] = pi[c][i];
  for (int i = 1; i <= n; i++) printf("%d ", vv[i]);
  printf("\n");
  return 0;
}
