#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization("unroll-loops")
using namespace std;
const int MX = 102;
bool v[MX][1 << 17];
int n, dp[MX][1 << 17], d[MX][1 << 17], a[MX], pr[MX];
int prime[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59};
int factor[62];
int f(int i, int m) {
  if (i == n) return 0;
  if (!v[i][m]) {
    dp[i][m] = INT_MAX;
    for (int j = 1; j < a[i] + a[i]; j++) {
      if (m & factor[j]) continue;
      int x = abs(a[i] - j) + f(i + 1, m | factor[j]);
      if (x < dp[i][m]) dp[i][m] = x, d[i][m] = a[i] - j;
    }
    v[i][m] = true;
  }
  return dp[i][m];
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 2; i <= 60; i++) {
    for (int j = 0; j < 17; j++) {
      if (i % prime[j] == 0) {
        factor[i] |= (1 << j);
      }
    }
  }
  f(0, 0);
  for (int i = 0, m = 0; i < n; i++) {
    int x = a[i] - d[i][m];
    cout << x << " ";
    m |= factor[x];
  }
  cout << endl;
  return 0;
}
