#include <bits/stdc++.h>
using namespace std;
const int INF = 0xfff;
const int top = 1 << 16;
int a[105], b[105], son[53], back[105][top], dp[105][top];
int pre[20] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53};
int main() {
  for (int i = 1; i <= 53; i++) {
    for (int j = 0; j < 16; j++) {
      if (i % pre[j] == 0) son[i] |= (1 << j);
    }
  }
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) cin >> a[i];
  memset(dp, 0x3f, sizeof(dp));
  dp[0][0] = 0;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < top; j++) {
      for (int k = 1; k <= 53; k++) {
        if ((j & son[k]) != son[k]) continue;
        if (dp[i][j] > dp[i - 1][j ^ son[k]] + abs(a[i] - k)) {
          dp[i][j] = dp[i - 1][j ^ son[k]] + abs(a[i] - k);
          back[i][j] = k;
        }
      }
    }
  }
  int ans = INF, num = 0;
  for (int j = 0; j < top; j++) {
    if (ans > dp[n][j]) {
      ans = dp[n][j];
      num = j;
    }
  }
  for (int i = n; i >= 1; i--) {
    b[i] = back[i][num];
    num ^= son[b[i]];
  }
  for (int i = 1; i <= n; i++) {
    cout << b[i] << " ";
  }
  cout << endl;
  return 0;
}
