#include <bits/stdc++.h>
#pragma comment(linker, "/stack:100000000")
using namespace std;
const int N = 3000000;
int L, R, p;
vector<int> prime;
int a[N], dp[N];
bool can[N];
int n = 0;
bool isPrime(int n) {
  if (n <= 1) return false;
  for (int i = 2; i * i <= n; i++) {
    if (n % i == 0) return false;
  }
  return true;
}
void gen(int x, int m) {
  a[n++] = x;
  for (int(i) = 0; (i) < ((int)(prime).size()); (i)++) {
    if (prime[i] >= m && (long long)x * prime[i] <= R) {
      gen(x * prime[i], prime[i]);
    }
  }
}
int main() {
  cin >> L >> R >> p;
  for (int i = 1; i <= 100; i++) {
    if (isPrime(i)) {
      prime.push_back(i);
    }
  }
  gen(1, 1);
  sort(a, a + n);
  fill(dp, dp + n, 1e9);
  dp[0] = 0;
  for (int i = 2; i <= p; i++) {
    int k = 0;
    for (int(j) = 0; (j) < (n); (j)++) {
      while (k < n && a[k] < a[j] * i) ++k;
      if (k == n) break;
      if (a[k] == a[j] * i && dp[k] > dp[j] + 1) {
        dp[k] = dp[j] + 1;
        if (dp[k] + i <= p) can[k] = 1;
      }
    }
  }
  int res = 0;
  for (int(i) = 0; (i) < (n); (i)++) {
    if (a[i] >= L && can[i]) ++res;
  }
  printf("%d\n", res);
  return 0;
}
