#include <bits/stdc++.h>
using namespace std;
const int N = 110, inf = 0x3f3f3f3f;
int p[16] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53};
int f[N][1 << 16], ans[N][1 << 16], val[60], a[N];
int n;
void init() {
  for (int i = 1; i < 60; i++) {
    val[i] = 0;
    for (int j = 0; j < 16; j++) {
      if (i % p[j] == 0) val[i] |= (1 << j);
    }
  }
}
int dp(int cur, int mask) {
  if (cur == n) return 0;
  int &ret = f[cur][mask];
  if (ret < inf) return ret;
  for (int i = 1; i < 60; i++) {
    if ((val[i] & mask) == 0) {
      int t = dp(cur + 1, mask | val[i]) + abs(a[cur] - i);
      if (ret > t) {
        ret = t;
        ans[cur][mask] = i;
      }
    }
  }
  return ret;
}
int main() {
  init();
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", &a[i]);
  memset(f, inf, sizeof(f));
  dp(0, 0);
  int mask = 0;
  for (int i = 0; i < n; i++) {
    printf("%d", ans[i][mask]);
    mask |= val[ans[i][mask]];
    if (i == n - 1)
      printf("\n");
    else
      printf(" ");
  }
  return 0;
}
