#include <bits/stdc++.h>
const int inf = (1 << 30), mod = 1000000007;
using namespace std;
int n, a[101],
    p[16] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53};
int msk[101], d[101][1 << 16], pr[101][1 << 16], to[101][1 << 16];
void precalc() {
  for (int i = 0; i <= n; i++)
    for (int j = 0; j < (1 << 16); j++) d[i][j] = inf;
  for (int i = 1; i <= 60; i++) {
    for (int j = 0; j < 16; j++)
      if (i % p[j] == 0) msk[i] += (1 << j);
  }
}
void getAns(int i, int mask) {
  if (i == 0) return;
  getAns(i - 1, pr[i][mask]);
  cout << to[i][mask] << (i < n ? " " : "\n");
}
int main() {
  cin >> n;
  precalc();
  for (int i = 1; i <= n; i++) cin >> a[i];
  d[0][0] = 0;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= 60; j++) {
      int t = msk[j];
      for (int mask = 0; mask < (1 << 16); mask++) {
        if (d[i - 1][mask] == inf) continue;
        if ((t & mask) == 0 &&
            d[i][t | mask] > d[i - 1][mask] + abs(a[i] - j)) {
          d[i][t | mask] = d[i - 1][mask] + abs(a[i] - j);
          pr[i][t | mask] = mask;
          to[i][t | mask] = j;
        }
      }
    }
  }
  int mm = 0;
  for (int i = 0; i < (1 << 16); i++) {
    if (d[n][mm] > d[n][i]) mm = i;
  }
  getAns(n, mm);
  return 0;
}
