#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 1000;
const int ps[] = {2,  3,  5,  7,  11, 13, 17, 19, 23, 29, 31, 37, 41,
                  43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97};
int as[MAX_N], bs[MAX_N * 2];
template <typename T>
T gcd(T m, T n) {
  if (m < n) swap(m, n);
  while (n > 0) {
    T r = m % n;
    m = n;
    n = r;
  }
  return m;
}
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", as + i);
  int m = 0;
  bs[m++] = as[0];
  for (int i = 1; i < n; i++) {
    if (gcd<int>(as[i - 1], as[i]) > 1)
      for (int j = 0;; j++)
        if (as[i - 1] % ps[j] != 0 && as[i] % ps[j] != 0) {
          bs[m++] = ps[j];
          break;
        }
    bs[m++] = as[i];
  }
  printf("%d\n", m - n);
  for (int i = 0; i < m; i++) {
    printf("%d", bs[i]);
    putchar(i + 1 < m ? ' ' : '\n');
  }
  return 0;
}
