#include <bits/stdc++.h>
using namespace std;
template <typename T>
istream& operator>>(istream& is, vector<T>& v) {
  for (auto& i : v) is >> i;
  return is;
}
template <typename T>
ostream& operator<<(ostream& os, vector<T>& v) {
  for (auto& i : v) os << i << ' ';
  return os;
}
template <typename T, typename U>
istream& operator>>(istream& is, pair<T, U>& p) {
  is >> p.first >> p.second;
  return is;
}
template <typename T, typename U>
ostream& operator<<(ostream& os, pair<T, U>& p) {
  os << p.first << ' ' << p.second;
  return os;
}
int main() {
  long long b;
  cin >> b;
  vector<pair<long long, long long>> v;
  long long p = 2;
  while (p * p <= b) {
    if (b % p == 0) {
      v.emplace_back(p, 0);
      while (b % p == 0) {
        b /= p;
        v.back().second++;
      }
    }
    ++p;
  }
  if (b != 1) v.emplace_back(b, 1);
  long long c = 1;
  for (auto p : v) {
    c *= p.second + 1;
  }
  cout << c << '\n';
  return 0;
}
