#include <bits/stdc++.h>
using namespace std;
int prime[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59};
int fack[62];
int dp[110][1 << 17];
int pre[110][1 << 17];
int x[110][1 << 17];
int n;
int a[110];
void init() {
  memset(fack, 0, sizeof(fack));
  for (int i = 1; i <= 60; i++) {
    for (int j = 0; j <= 16; j++) {
      if (i % prime[j] == 0) {
        fack[i] += (1 << j);
      }
    }
  }
}
void dfs(int idx, int id) {
  if (idx >= 2) dfs(idx - 1, pre[idx][id]);
  printf("%d%c", x[idx][id], idx == n ? '\n' : ' ');
}
int main() {
  init();
  fack[1] = 0;
  while (~scanf("%d", &n)) {
    for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
    memset(dp, 50, sizeof(dp));
    dp[0][0] = 0;
    for (int i = 1; i <= n; i++) {
      for (int s = 0; s <= (1 << 17) - 1; s++) {
        for (int k = 1; k < 60; k++) {
          if (s & fack[k])
            continue;
          else {
            if (dp[i][s | fack[k]] > dp[i - 1][s] + abs(a[i] - k)) {
              dp[i][s | fack[k]] = dp[i - 1][s] + abs(a[i] - k);
              pre[i][s | fack[k]] = s;
              x[i][s | fack[k]] = k;
            }
          }
        }
      }
    }
    int ans = 0x3f3f3f3f;
    int id;
    for (int s = 0; s <= (1 << 17) - 1; s++) {
      if (dp[n][s] < ans) {
        ans = dp[n][s];
        id = s;
      }
    }
    dfs(n, id);
  }
}
