#include <bits/stdc++.h>
using namespace std;
template <typename T>
T gcd(T a, T b) {
  T c;
  while (b) {
    c = b;
    b = a % b;
    a = c;
  }
  return a;
}
int main() {
  int32_t size_n;
  scanf("%lld", &size_n);
  int32_t k = size_n;
  vector<int64_t> el;
  int64_t tempe;
  while (k--) {
    scanf("%lld", &tempe);
    el.push_back(tempe);
  }
  int64_t temp = el[0];
  for (int i = 1; i < size_n; i++) {
    temp = gcd(temp, el[i]);
  }
  int32_t res = 0;
  for (int i = 1; i <= sqrt(temp); i++) {
    if (temp % i == 0) {
      if (temp / i == i) {
        res++;
      } else {
        res += 2;
      }
    }
  }
  cout << res << endl;
  return 0;
}
