#include <bits/stdc++.h>
using namespace std;
const int N = 100 + 10;
const int M = 1 << 17;
int d[M][N], a[N], n, par[M][N], ans, t[N];
int p[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59};
void pp(int mask, int i) {
  if (par[mask][i] == -1) {
    if (i) pp(mask, i - 1);
    cout << 1 << " ";
    return;
  }
  if (i) pp(mask - t[par[mask][i]], i - 1);
  cout << par[mask][i] << " ";
  return;
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 1; i < 60; i++) {
    for (int j = 0; j < 17; j++)
      if (!(i % p[j])) t[i] += (1 << j);
  }
  d[0][0] = a[0] - 1;
  par[0][0] = -1;
  for (int i = 1; i < n; i++) d[0][i] = d[0][i - 1] + a[i] - 1, par[0][i] = -1;
  for (int mask = 1; mask < (1 << 17); mask++) {
    for (int i = 0; i < n; i++) {
      d[mask][i] = a[i] - 1;
      par[mask][i] = -1;
      if (i) d[mask][i] += d[mask][i - 1];
      for (int k = 1; k < 59; k++) {
        if ((mask & t[k]) == t[k]) {
          int what = abs(a[i] - k);
          if (i) what += d[mask - t[k]][i - 1];
          if (what < d[mask][i]) {
            d[mask][i] = what;
            par[mask][i] = k;
          }
        }
      }
      if (i == n - 1) {
        if (d[mask][i] < d[ans][i]) ans = mask;
      }
    }
  }
  pp(ans, n - 1);
  cout << endl;
}
