#include <bits/stdc++.h>
using namespace std;
int pr[17] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59},
    sz = 17;
int factor[105], a[105];
int dp[105][1 << 17];
pair<int, int> last[105][1 << 17];
int here[105][1 << 17];
int main() {
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) cin >> a[i];
  for (int i = 0; i < sz; i++) {
    for (int j = pr[i]; j <= 60; j += pr[i]) {
      factor[j] |= 1 << i;
    }
  }
  memset(dp, 63, sizeof dp);
  memset(dp[0], 0, sizeof dp[0]);
  for (int i = 1, all = (1 << 17) - 1; i <= n; i++) {
    for (int k = 1; k < 60; k++) {
      int s = all & (~factor[k]);
      for (int x = s;; x = (x - 1) & s) {
        int now = dp[i - 1][x] + abs(a[i] - k);
        if (now < dp[i][x | factor[k]]) {
          dp[i][x | factor[k]] = now;
          last[i][x | factor[k]] = pair<int, int>(i - 1, x);
          here[i][x | factor[k]] = k;
        }
        if (x == 0) break;
      }
    }
  }
  int mn = 1e9 + 7;
  pair<int, int> now;
  for (int i = 1; i < 1 << 17; i++) {
    if (dp[n][i] < mn) {
      mn = dp[n][i];
      now = pair<int, int>(n, i);
    }
  }
  vector<int> v;
  while (now.first) {
    v.push_back(here[now.first][now.second]);
    now = last[now.first][now.second];
  }
  reverse(v.begin(), v.end());
  for (auto it : v) cout << it << " ";
  cout << endl;
  return 0;
}
