#include <bits/stdc++.h>
using namespace std;
int n, a[101],
    bit[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53},
    val[61];
int trans[101][2 << 16], dp[101][1 << 16];
int f(int cur, int mask) {
  if (cur > n) return 0;
  if (dp[cur][mask] != -1) return dp[cur][mask];
  int &ret = dp[cur][mask];
  ret = 1000000;
  for (int i = 1; i <= 60; i++) {
    if ((mask & val[i]) == 0) {
      int tmp = f(cur + 1, (mask | val[i])) + abs(a[cur] - i);
      if (tmp < ret) {
        ret = tmp;
        trans[cur][mask] = i;
      }
    }
  }
  return ret;
}
void pre() {
  memset(val, 0, sizeof val);
  memset(dp, -1, sizeof dp);
  for (int i = 1; i <= 60; i++) {
    for (int k = 0; k < 16; k++) {
      if (i % bit[k] == 0) {
        val[i] |= 1 << k;
      }
    }
  }
}
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) cin >> a[i];
  pre();
  f(1, 0);
  int now = 0;
  for (int i = 1; i <= n; i++) {
    cout << trans[i][now] << " ";
    now |= val[trans[i][now]];
  }
  return 0;
}
