#include <bits/stdc++.h>
using namespace std;
int N;
long long A[5010];
int cc[5010][5010];
int dp(int n, int p) {
  if (n == -1) return 0;
  int &ret = cc[n][p];
  if (ret != -1) return ret;
  long long x = A[p];
  if (p - n - 1 > 50)
    x /= (x & -x);
  else
    x /= min(x & -x, 1LL << (p - n - 1));
  if (x % 2) {
    ret = 1 + dp(n - 1, p);
    if (A[n] % x)
      return ret;
    else {
      ret = min(ret, dp(n - 1, n));
      return ret;
    }
  } else {
    ret = 1 + dp(n - 1, p);
    if (A[n] % x != x / 2)
      return ret;
    else {
      ret = min(ret, dp(n - 1, n));
      return ret;
    }
  }
}
int main() {
  scanf("%d", &N);
  for (int i = 0; i < N; i++) {
    scanf("%lld", &A[i]);
  }
  A[N] = 1;
  memset(cc, -1, sizeof(cc));
  printf("%d", dp(N - 1, N));
}
