#include <bits/stdc++.h>
using namespace std;
int p[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59};
int a[101];
int pd[101][1 << 17];
int caminho[101][1 << 17];
int mapear[61];
int main() {
  memset(mapear, 0, sizeof mapear);
  for (register int i = 1; i <= 60; i++) {
    int num = 0;
    for (register int j = 0; j < 17; j++) {
      if (i % p[j] == 0) num |= (1 << j);
    }
    mapear[i] = num;
  }
  int n;
  scanf("%d", &n);
  for (register int i = 0; i < n; i++) scanf("%d", &a[i]);
  for (register int i = n - 1; i >= 0; i--) {
    for (register int mask = 0; mask < (1 << 17); mask++) {
      pd[i][mask] = pd[i + 1][mask] + abs(a[i] - 1);
      caminho[i][mask] = 1;
      for (register int j = 2; j <= 2 * a[i]; j++) {
        if (!(mask & mapear[j])) {
          if (pd[i][mask] > pd[i + 1][mask | mapear[j]] + abs(a[i] - j)) {
            pd[i][mask] = pd[i + 1][mask | mapear[j]] + abs(a[i] - j);
            caminho[i][mask] = j;
          }
        }
      }
    }
  }
  int mask = 0;
  for (int i = 0; i < n; i++) {
    printf("%d ", caminho[i][mask]);
    mask |= mapear[caminho[i][mask]];
  }
  return 0;
}
