#include <bits/stdc++.h>
using namespace std;
const int maxn = 200010;
int vis[maxn], p[maxn], cnt;
void prime() {
  vis[1] = 1;
  for (int i = 1; i < maxn; i++) {
    if (!vis[i]) p[++cnt] = i;
    for (int j = 1; j <= cnt && p[j] * i < maxn; j++) {
      vis[i * p[j]] = 1;
      if (i % p[j] == 0) break;
    }
  }
}
bool check(int P) {
  for (int i = 2; i * i <= P; i++)
    if (P % i == 0) return false;
  return true;
}
int solve(int N, int P) {
  if (!check(P) || N < P) return 0;
  if (N / P < P) return 1;
  int res = N / P;
  for (int i = 2; i <= P - 1; i++) res -= solve(N / P, i);
  return res;
}
int main() {
  prime();
  int A, B, P;
  scanf("%d%d%d", &A, &B, &P);
  printf("%d\n", solve(B, P) - solve(A - 1, P));
  return 0;
}
