#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 100002;
int n, out, pos1, pos2, c;
int a[MAX_N], b[MAX_N];
stack<int> pos;
int gcd(int a, int b) {
  if (b == 0) {
    return a;
  } else {
    return gcd(b, a % b);
  }
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
  }
  for (int i = 0; i < n; i++) {
    b[i] = a[i] % 2;
  }
  c = a[0];
  for (int i = 1; i < n; i++) {
    c = gcd(c, a[i]);
  }
  for (int i = 0; i < n; i++) {
    if (b[i] == 1) {
      pos.push(i);
    }
  }
  while (!pos.empty()) {
    if (pos.size() == 1) {
      out += 2;
      pos.pop();
    } else {
      pos2 = pos.top();
      pos.pop();
      pos1 = pos.top();
      pos.pop();
      if (pos1 + 1 == pos2) {
        out += 1;
      } else {
        out += 2;
        pos.push(pos1);
      }
    }
  }
  if (c == 1) {
    printf("YES\n%d\n", out);
  } else {
    printf("YES\n%d\n", 0);
  }
}
