#include <bits/stdc++.h>
using namespace std;
int sushu[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53};
int prime[65];
int a[105];
int top = 1 << 16;
int dp[105][140000];
int ans[105][140000];
int _ans[105];
void Prime(int n) {
  for (int i = 1; i < n; i++) {
    for (int j = 0; j < 16; j++) {
      if (i % sushu[j] == 0) prime[i] |= (1 << j);
    }
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  int n;
  int _max = 0;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    if (a[i] > _max) _max = a[i];
  }
  memset(dp, 127, sizeof(dp));
  _max *= 2;
  Prime(_max);
  int temp;
  dp[0][0] = 0;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < top; j++) {
      for (int k = 1; k < _max; k++) {
        if ((j & prime[k]) != prime[k]) continue;
        temp = dp[i - 1][j ^ prime[k]] + abs(a[i] - k);
        if (dp[i][j] > temp) {
          dp[i][j] = temp;
          ans[i][j] = k;
        }
      }
    }
  }
  temp = 0x3f3f3f3f;
  int index = 0;
  for (int i = 0; i < top; i++) {
    if (temp > dp[n][i]) {
      temp = dp[n][i];
      index = i;
    }
  }
  for (int i = n; i >= 1; i--) {
    _ans[i] = ans[i][index];
    index = index ^ prime[_ans[i]];
  }
  for (int i = 1; i <= n; i++) {
    cout << _ans[i] << " ";
  }
  cout << endl;
  return 0;
}
