#include <bits/stdc++.h>
using namespace std;
const int MAXN = 3000005;
bool f[MAXN], Ok[MAXN];
int l, r, p;
int Bot[MAXN], Num[MAXN], step[MAXN], cnt, cur;
void Dfs(int Now, int V, int Pr) {
  if (Now > cnt) return;
  Num[++cur] = V;
  int Nt = cur;
  for (int j = Now; j <= cnt; j++)
    if (V * (long long)Bot[j] <= r) Dfs(j, V * Bot[j], Nt);
}
int min(int a, int b) {
  if (a == -1) return b;
  if (b == -1) return a;
  return a < b ? a : b;
}
int main() {
  scanf("%d%d%d", &l, &r, &p);
  for (int i = 2; i <= 100; i++)
    for (int j = i; j <= 100; j++) f[i * j] = 1;
  for (int i = 2; i <= 100; i++)
    if (!f[i]) Bot[++cnt] = i;
  Num[cur = 1] = 1;
  for (int i = 1; i <= cnt; i++) {
    Dfs(i, Bot[i], 0);
  }
  sort(Num + 1, Num + cur + 1);
  for (int i = 2; i <= cur; i++) step[i] = 99999999;
  for (int i = 2; i <= p; i++) {
    int j = 1;
    for (int k = 1; k <= cur; k++) {
      while (j <= cur && Num[j] != Num[k] * i) j++;
      if (j > cur) break;
      if (step[k] + 1 < step[j]) step[j] = step[k] + 1;
      if (i + step[j] <= p && step[j] != -1) Ok[j] = 1;
    }
  }
  int Ans = 0;
  for (int i = 1; i <= cur; i++)
    if (Num[i] >= l && Num[i] <= r && Ok[i]) Ans++;
  printf("%d\n", Ans);
  return 0;
}
