#include <bits/stdc++.h>
using namespace std;
const int N = 3000000, M = 100;
int i, j, k, l, m, n, o, p, A, cnt, L, R, Max, C[N], tot, P[M], b[M], a[M];
int Best[N], f[N];
int tttt;
inline void Prepare() {
  for (i = 2; i <= A; i++)
    if (!b[i]) {
      P[++tot] = i;
      for (j = i; j <= A; j++) {
        b[j] = 1;
        j += i - 1;
      }
    }
}
inline void dfs(int i, int now) {
  if (!i) {
    C[++cnt] = now;
  } else {
    int cul = a[i];
    while (1) {
      if (cul <= Max / now) dfs(i - 1, now * cul);
      if (cul == 1) break;
      cul /= P[i];
    }
  }
}
inline void Solve(int R) {
  int Up, Next, now;
  Max = R;
  cnt = 0;
  for (i = 1; i <= tot; i++) {
    a[i] = 1;
    while (a[i] <= Max / P[i]) a[i] *= P[i];
  }
  dfs(tot, 1);
  sort(C + 1, C + cnt + 1);
  for (i = 1; i <= cnt; i++) f[i] = Best[i] = 1000;
  f[1] = Best[1] = 0;
  for (Up = 2; Up <= A; Up++) {
    i = 1;
    for (j = 1; j <= cnt; j++)
      if (C[j] * Up <= Max) {
        now = C[j] * Up;
        while (C[i] < now) i++;
        o = f[j] + 1;
        if (o < f[i]) {
          f[i] = o;
          o += Up;
          if (o < Best[i]) Best[i] = o;
        }
      } else
        break;
  }
}
int main() {
  cin >> L >> R >> A;
  Prepare();
  Solve(R);
  int ans = 0;
  for (i = 1; i <= cnt; i++) ans += (C[i] >= L) && (Best[i] <= A);
  cout << ans << endl;
  return 0;
}
