#include <bits/stdc++.h>
using namespace std;
int pri[26] = {2,  3,  5,  7,  11, 13, 17, 19, 23, 29, 31, 37, 41,
               43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 100};
int n, l, r, T;
int st[4000000], f[4000000], top;
bool can[4000000];
void dfs(int last, int now) {
  st[++top] = now;
  for (int i = last; i <= T; i++) {
    if ((long long)now * pri[i] <= r) dfs(i, now * pri[i]);
  }
}
int main() {
  int i, j, k, ans;
  scanf("%d%d%d", &l, &r, &n);
  T = lower_bound(pri, pri + 25, n) - pri;
  dfs(0, 1);
  sort(st + 1, st + top + 1);
  memset(f, 0x3f, sizeof(f));
  st[top + 1] = 0x3f3f3f3f;
  can[1] = 1;
  for (i = 1; i <= pri[T]; i++) {
    f[i] = 1;
    for (j = 1, k = 1; j <= top; j++) {
      if (i * st[j] > r) break;
      while (st[k] < i * st[j]) k++;
      if (st[k] == i * st[j] && f[j] + 1 < f[k]) f[k] = f[j] + 1;
      if (!can[k] && f[k] + i <= n) can[k] = 1;
    }
  }
  for (i = 1, ans = 0; i <= top; i++) {
    if (l <= st[i] && st[i] <= r && can[i]) ans++;
  }
  printf("%d\n", ans);
  return 0;
}
