#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
const double PI = 3.14159265358979323846;
int a[101];
int fact[60];
int dp[101][1 << 16];
int pre[101][1 << 16];
int primes[]{2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53};
int main() {
  if (0) {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
  }
  int n;
  cin >> n;
  for (int i = 1; i <= n; ++i) {
    cin >> a[i];
  }
  for (int i = 1; i < 60; ++i) {
    for (int j = 0; j < 16; ++j) {
      if (i % primes[j] == 0) {
        fact[i] |= 1 << j;
      }
    }
  }
  for (int i = 1; i <= n; ++i) {
    for (int j = 0; j < 1 << 16; ++j) {
      dp[i][j] = 1e9;
    }
  }
  dp[0][0] = 0;
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j < 60; ++j) {
      int x = ~fact[j] & ((1 << 16) - 1);
      for (int s = x;; s = (s - 1) & x) {
        if (dp[i - 1][s] + abs(j - a[i]) < dp[i][s | fact[j]]) {
          dp[i][s | fact[j]] = dp[i - 1][s] + abs(j - a[i]);
          pre[i][s | fact[j]] = j;
        }
        if (s == 0) {
          break;
        }
      }
    }
  }
  int bestIndex = 0;
  for (int i = 0; i < 1 << 16; ++i) {
    if (dp[n][i] < dp[n][bestIndex]) {
      bestIndex = i;
    }
  }
  vector<int> sol;
  for (int i = n; i > 0; --i) {
    sol.push_back(pre[i][bestIndex]);
    bestIndex -= fact[pre[i][bestIndex]];
  }
  for (int i = sol.size() - 1; i >= 0; --i) {
    cout << sol[i] << ' ';
  }
  cout << endl;
  return 0;
}
