#include <bits/stdc++.h>
using namespace std;
int f[3000001], p[300], id[3000001], n, r, le, num;
bool b[3000001];
int dfs(int x, int y) {
  id[++n] = y;
  for (int i = x; i <= num; i++) {
    if (y * 1ll * p[i] > r) break;
    dfs(i, y * p[i]);
  }
  return 0;
}
int main() {
  int le, k;
  scanf("%d%d%d", &le, &r, &k);
  for (int i = 2; i <= k; i++) {
    if (!b[i]) p[++num] = i;
    for (int j = 1; j <= num && i * p[j] <= k; j++) {
      b[i * p[j]] = 1;
      if (!(i % p[j])) break;
    }
  }
  dfs(1, 1);
  f[1] = 0;
  for (int i = 2; i <= n; i++) f[i] = 300;
  sort(id + 1, id + 1 + n);
  for (int i = 1; i <= k; i++) {
    int t = 1;
    for (int j = 1; j <= n; j++) {
      while (t <= n && id[t] != id[j] * i) ++t;
      if (t > n) break;
      f[t] = min(f[t], f[j] + 1);
      if ((!b[t]) && (i + f[t] <= k)) b[t] = 1;
    }
  }
  int ans = 0;
  for (int i = 1; i <= n; i++) {
    if (b[i] && id[i] >= le) ++ans;
  }
  printf("%d\n", ans);
  return 0;
}
