#include <bits/stdc++.h>
using namespace std;
int l, r, p, prime[100], tot, ans;
int f[4000000], a[4000000], n, i, j, k;
bool check[100], flag[4000000];
void init() {
  for (int i = 2; i < p; i++) {
    if (!check[i]) prime[++tot] = i;
    for (int j = 1; j <= tot; j++) {
      if (prime[j] * i >= p) break;
      check[i * prime[j]] = 1;
      if (i % prime[j] == 0) break;
    }
  }
}
void dfs(int num, int s, int x) {
  a[++n] = num;
  for (int i = s; i <= tot; i++) {
    if (num > x / prime[i]) break;
    dfs(num * prime[i], i, x);
  }
}
int main() {
  scanf("%d%d%d", &l, &r, &p);
  init();
  dfs(1, 1, r);
  sort(a + 1, a + n + 1);
  memset(f, 127 / 2, sizeof(f));
  f[1] = 0;
  for (i = 2; i < p; i++) {
    for (j = 1, k = 1; j <= n; j++)
      if (a[j] % i == 0) {
        while (a[k] < a[j] / i) k++;
        f[j] = min(f[j], f[k] + 1);
        if (f[j] + i <= p) flag[j] = 1;
      }
  }
  for (i = 1; i <= n; i++)
    if (a[i] >= l && flag[i]) ans++;
  printf("%d\n", ans);
  return 0;
}
