#include <bits/stdc++.h>
using namespace std;
vector<int> p;
bool first[70];
long long int p_mask[61];
int a[111];
void gen() {
  for (int i = 2; i <= 60; i++) {
    if (!first[i]) {
      p.push_back(i);
      for (int j = 2 * i; j <= 60; j += i) {
        first[j] = 1;
      }
    }
  }
  p_mask[1] = 0;
  for (int i = 2; i <= 60; i++) {
    for (int j = 0; j < p.size(); j++) {
      if (i % p[j] == 0) {
        p_mask[i] |= (1 << j);
      }
    }
  }
}
int n;
int dp[101][1 << 18];
int track[101][1 << 18];
int rec(int i, int mask) {
  if (i == n) {
    return 0;
  }
  if (dp[i][mask] != -1) return dp[i][mask];
  dp[i][mask] = 0;
  int ret = 1e9;
  for (int j = 1; j < 60; j++) {
    if ((mask & p_mask[j]) == 0) {
      ret = min(ret, rec(i + 1, mask | p_mask[j]) + abs(a[i] - j));
      if (ret == rec(i + 1, mask | p_mask[j]) + abs(a[i] - j)) {
        track[i][mask] = j;
      }
    }
  }
  return dp[i][mask] = ret;
}
int main() {
  gen();
  cin >> n;
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < (1 << 17); j++) {
      dp[i][j] = -1;
    }
  }
  rec(0, 0);
  long long int mask = 0;
  for (int i = 0; i < n; i++) {
    cout << track[i][mask] << " ";
    mask |= p_mask[track[i][mask]];
  }
}
