#include <bits/stdc++.h>
using namespace std;
long long p[] = {2,  3,  5,  7,  11, 13, 17, 19, 23,
                 29, 31, 37, 41, 43, 47, 53, 59};
long long dp[105][1 << 17];
long long link[105][1 << 17];
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  long long n;
  cin >> n;
  vector<long long> a(n);
  for (long long i = 0; i < n; i++) cin >> a[i];
  vector<long long> coding(61);
  for (long long i = 2; i < 61; i++) {
    long long mask = 0;
    for (long long j = 0; j < 16; j++) {
      if (i % p[j] == 0) mask |= (1 << j);
    }
    coding[i] = mask;
  }
  fill(&dp[0][0], &dp[n][0], 500000);
  fill(&link[0][0], &link[n][0], -1);
  for (long long i = 0; i < n; i++) {
    for (long long s = 0; s < (1 << 16); s++) {
      for (long long na = 1; na <= a[i] * 2; na++) {
        if ((s | coding[na]) == s) {
          if (dp[i][s] >
              ((i > 0 ? dp[i - 1][s ^ coding[na]] : 0) + abs(na - a[i]))) {
            dp[i][s] = (i > 0 ? dp[i - 1][s ^ coding[na]] : 0) + abs(na - a[i]);
            link[i][s] = na;
          }
        }
      }
    }
  }
  long long minn = LLONG_MAX;
  long long mask = -1;
  for (long long s = 0; s < (1 << 16); s++) {
    if (minn > dp[n - 1][s]) {
      minn = dp[n - 1][s];
      mask = s;
    }
  }
  long long i = n - 1;
  stack<long long> res;
  while (i >= 0) {
    res.push(link[i][mask]);
    mask ^= coding[link[i][mask]];
    --i;
  }
  while (!res.empty()) {
    cout << res.top() << ' ';
    res.pop();
  }
}
