#include <bits/stdc++.h>
using namespace std;
map<int, char> ma;
long long l, r;
long long p;
unsigned int se[31250009];
bool isv(int k) { return se[k / 32] & (1 << (k % 32)); }
void sev(int k) { se[k / 32] = se[k / 32] | (1 << (k % 32)); }
int main() {
  cin >> l >> r >> p;
  ma[1] = 0;
  long long nu;
  char nk;
  int res = 0;
  for (long long k = 2; k < p; k++) {
    while (!ma.empty() && (k * (long long)(--ma.end())->first) > r) {
      ma.erase(--ma.end());
    }
    for (map<int, char>::iterator it = ma.begin(); it != ma.end(); it++) {
      nu = it->first * k;
      nk = it->second + 1;
      if (nu >= l && nk + k <= p) {
        if (!isv(nu)) {
          res++;
        }
        sev(nu);
      }
      if (nu * k <= r) {
        char c = 120;
        if (ma.count(nu) > 0) {
          ma[nu] = min(ma[nu], nk);
        } else {
          ma[nu] = nk;
        }
      }
    }
  }
  cout << res << endl;
  return 0;
}
