#include <bits/stdc++.h>
#pragma warning(disable : 4996)
using namespace std;
const int mod = 1e9 + 7;
const int maxn = 1e2 + 1;
const double eps = 1e-8;
const double pi = acos(-1.0);
const int inf = 0x3f3f3f3f;
int a[maxn];
int dp[maxn][1 << 17];
int mem[maxn][1 << 17];
int pre[maxn][1 << 17];
int ans[maxn];
int prime[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59};
int st[maxn];
void init(void) {
  for (int i = 1; i < 59; i++) {
    for (int j = 0; j < 17; j++) {
      if (!(i % prime[j])) {
        st[i] |= (1 << j);
      }
    }
  }
}
int main() {
  init();
  int n;
  scanf("%d", &n);
  memset(dp, inf, sizeof(dp));
  memset(dp[0], 0, sizeof(dp[0]));
  int upp = (1 << 17);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < upp; j++) {
      for (int k = 0; k <= 60; k++) {
        if (!(st[k] & j)) {
          int tmp = dp[i - 1][j] + abs(a[i] - k);
          if (dp[i][j | st[k]] > tmp) {
            dp[i][j | st[k]] = tmp;
            mem[i][j | st[k]] = k;
            pre[i][j | st[k]] = j;
          }
        }
      }
    }
  }
  int minn = inf;
  int dex;
  for (int i = 0; i < upp; i++) {
    if (minn > dp[n][i]) {
      minn = dp[n][i];
      dex = i;
    }
  }
  for (int i = n; i >= 1; i--) {
    int tt = mem[i][dex];
    ans[i] = tt;
    dex = pre[i][dex];
  }
  for (int i = 1; i <= n; i++) {
    if (i != 1) printf(" ");
    printf("%d", ans[i]);
  }
}
