#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
const int maxn = 3 * 1e6 + 7;
inline int read() {
  int res = 0, tmp = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') tmp = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9')
    res = (res << 1) + (res << 3) + (ch ^ 48), ch = getchar();
  return res * tmp;
}
void write(int x) {
  if (x < 0) putchar('-'), x = -x;
  if (x > 9) write(x / 10);
  putchar(x % 10 + '0');
}
void hour() {
  cerr << "运行时间：" << 1.0 * clock() / CLOCKS_PER_SEC << "s" << endl;
}
int n, m, a[maxn], l, r, p, f[maxn], s[maxn], ans, prime[101];
bool zs[maxn], v[maxn];
void pd(int x) {
  for (int i = 2; i <= x; i++) {
    if (!zs[i]) {
      prime[++m] = i;
    }
    for (int j = 1; j <= m; j++) {
      if (prime[j] * i > x) break;
      zs[prime[j] * i] = 1;
      if (i % prime[j] == 0) break;
    }
  }
}
void dfs(int t, int x) {
  if (t > m) return;
  dfs(t + 1, x);
  while ((long long)x * prime[t] <= r) {
    x *= prime[t];
    a[++n] = x;
    dfs(t + 1, x);
  }
}
int main() {
  l = read();
  r = read();
  p = read();
  pd(p - 1);
  dfs(1, 1);
  a[++n] = 1;
  sort(a + 1, a + 1 + n);
  for (int i = 2; i <= n; i++) f[i] = 1001;
  for (int i = 2; i <= p; i++) {
    int t = 1;
    for (int j = 1; j <= n; j++) {
      while (t <= n && a[t] != i * a[j]) t++;
      if (t > n) break;
      if (f[t] > f[j] + 1) f[t] = f[j] + 1;
      if (a[t] >= l && v[t] == 0 && f[t] + i <= p) v[t] = 1, ans++;
    }
  }
  write(ans);
  return 0;
}
