#include <bits/stdc++.h>
using namespace std;
vector<int> pr;
int pchk[100];
void sieve() {
  for (int i = 2; i < 100; i++) {
    if (!pchk[i]) {
      pr.push_back(i);
    }
    for (int j = 0; j < pr.size() && i * pr[j] < 100; j++) {
      pchk[i * pr[j]] = 1;
      if (i % pr[j] == 0) break;
    }
  }
}
int l, r, p, cnt;
int V[3000000];
int val;
void dfs(int idx) {
  if (idx == pr.size()) {
    V[cnt++] = val;
    return;
  }
  dfs(idx + 1);
  if (1LL * val * pr[idx] <= r) {
    val *= pr[idx];
    dfs(idx);
    val /= pr[idx];
  }
}
int dist[3000000], chk[3000000];
int main() {
  sieve();
  cin >> l >> r >> p;
  val = 1;
  dfs(0);
  sort(V, V + cnt);
  for (int i = 0; i < cnt; i++) dist[i] = 1e9;
  dist[0] = 0;
  for (int i = 2; i <= p - 1; i++) {
    int k = 0;
    for (int j = 0; j < cnt; j++) {
      if (V[j] % i == 0) {
        dist[j] = min(dist[j], dist[k] + 1);
        k++;
      }
      if (dist[j] <= p - i) chk[j] = 1;
    }
  }
  int ans = 0;
  for (int i = cnt - 1; V[i] >= l; i--)
    if (chk[i]) ans++;
  printf("%d", ans);
}
