#include <bits/stdc++.h>
using namespace std;

int n, k, m;
long long calc(vector<pair<int, long> > &v, int i, long long val) {
  if (i == v.size()) {
    return 1;
  }
  int d = v[i].first;
  long cnt = v[i].second;
  long long tmp = 1;
  long long ret = 0;
  for (int j=0; j<=cnt; j++) {
    ret += calc(v, i+1, val*tmp);
    tmp *= d;
    if (tmp * val > m) {
      break;
    }
  }
  return ret;
}
int main() {
  cin>>n>>k>>m;
  map<int, long> d;
  for (int i=2; i<=sqrt(n) && n > 1; i++) {
    if (n % i != 0) {
      continue;
    }
    while (n % i == 0) {
      ++d[i];
      n /= i;
    }
  }
  if (n != 1) {
    d[n] = 1;
  }
  for (auto di: d) {
    d[di.first] *= k;
  }
  vector<pair<int, long> > v(d.begin(), d.end());
  cout<<calc(v, 0, 1)<<endl;
}