#include <bits/stdc++.h>
using namespace std;
int n;
int a[101];
int PreMask[61];
int prime[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59};
int trace[101][1 << 18 | 1];
int dp[101][1 << 18 | 1];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  for (int i = 1; i <= n; ++i) cin >> a[i];
  for (int i = 0; i <= 60; ++i)
    for (int j = 0; j <= 16; ++j) {
      if (i % prime[j] == 0) PreMask[i] |= (1 << j);
    }
  for (int i = 0; i <= n; ++i)
    for (int j = 0; j < (1 << 17); ++j) dp[i][j] = 1e9;
  dp[0][0] = 0;
  for (int i = 1; i <= n; ++i)
    for (int j = 0; j < (1 << 17); ++j)
      for (int k = 1; k <= 60; ++k) {
        if (PreMask[k] & j) continue;
        int x = PreMask[k] | j;
        if (dp[i - 1][j] + abs(a[i] - k) < dp[i][x]) {
          trace[i][x] = k;
          dp[i][x] = dp[i - 1][j] + abs(a[i] - k);
        }
      }
  int res = 1e9;
  int resm = 0;
  for (int i = 0; i < (1 << 17); ++i) {
    resm = (res > dp[n][i] ? i : resm);
    res = min(res, dp[n][i]);
  }
  stack<int> st;
  int i = n;
  while (i > 0) {
    st.push(trace[i][resm]);
    resm ^= PreMask[trace[i][resm]];
    i--;
  }
  while (!st.empty()) {
    cout << st.top() << ' ';
    st.pop();
  }
}
