#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
const int K = 100010;
const int mod = 1000000007;
int prim[N], pn;
bool is_prim[K];
void make_prim() {
  memset(is_prim, 1, sizeof(is_prim));
  is_prim[0] = is_prim[1] = 0;
  for (int i = 2; i < N; i++) {
    if (is_prim[i]) prim[pn++] = i;
    for (int j = 0; j < pn && prim[j] * i < K; j++) {
      is_prim[prim[j] * i] = 0;
      if (i % prim[j] == 0) break;
    }
  }
}
int main() {
  int l, r;
  scanf("%d%d", &l, &r);
  make_prim();
  int ret = 0;
  for (int i = 1; i < K; i++) {
    if (i % 4 == 1 && is_prim[i] && i >= l && i <= r) ret++;
  }
  for (int i = K; i <= r; i += K) {
    memset(is_prim, 1, sizeof(is_prim));
    for (int j = 0; j < pn; j++) {
      for (int k = (i + prim[j] - 1) / prim[j]; k * prim[j] < i + K; k++) {
        is_prim[k * prim[j] - i] = 0;
      }
    }
    for (int j = i; j < i + K; j++)
      if (is_prim[j - i] && j % 4 == 1 && j >= l && j <= r) ret++;
  }
  if (2 >= l && 2 <= r) ret++;
  cout << ret << endl;
  return 0;
}
