#include <bits/stdc++.h>
using namespace std;
int n, ans, ret;
int f[105], st[105], dp[105][141072], cho[105][141072], pre[105][141072];
int pri[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59};
void dfs(int now, int st) {
  if (now == 0) return;
  dfs(now - 1, pre[now][st]);
  printf("%d ", cho[now][st]);
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d", &f[i]);
  for (int i = 1; i <= 60; i++)
    for (int j = 0; j < 17; j++)
      if (i % pri[j] == 0) st[i] |= (1 << j);
  for (int i = 0; i <= n; i++)
    for (int j = 0; j <= (1 << 17) - 1; j++) dp[i][j] = 0x3f3f3f3f;
  dp[0][0] = 0;
  for (int i = 1; i <= n; i++)
    for (int j = 0; j <= (1 << 17) - 1; j++) {
      if (dp[i - 1][j] >= 0x3f3f3f3f) continue;
      for (int k = 1; k <= 60; k++) {
        if (j & st[k]) continue;
        if (dp[i][j | st[k]] > dp[i - 1][j] + abs(k - f[i])) {
          dp[i][j | st[k]] = dp[i - 1][j] + abs(k - f[i]);
          cho[i][j | st[k]] = k;
          pre[i][j | st[k]] = j;
        }
      }
    }
  ans = 0x3f3f3f3f;
  for (int j = 0; j <= (1 << 17) - 1; j++)
    if (dp[n][j] < ans) ans = dp[n][j], ret = j;
  dfs(n, ret);
  return 0;
}
