#include <bits/stdc++.h>
using namespace std;

const int MAXN = 1e7 + 5;

int spf[MAXN];

void build_sieve(int n) {
    for (int i = 1; i <= n; i++) {
        spf[i] = i;
    }

    for (int i = 2; i * i <= n; i++) {
        if (spf[i] == i) {
            for (long long j = 1LL * i * i; j <= n; j += i) {
                if (spf[j] == j) {
                    spf[j] = i;
                }
            }
        }
    }
}


bool isPrimeSmall(int x) {
    if (x < 2) return false;
    for (int i = 2; 1LL * i * i <= x; i++) {
        if (x % i == 0) return false;
    }
    return true;
}


long long count_divisors(int x) {
    long long res = 1;

    while (x > 1) {
        int p = spf[x];
        int cnt = 0;

        while (x % p == 0) {
            x /= p;
            cnt++;
        }

        res *= (cnt + 1);
    }

    return res;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    long long l, r;
    cin >> l >> r;

    build_sieve((int)r);

    long long ans = 0;

    for (int x = (int)l; x <= (int)r; x++) {

        // изключваме 1,2,3
        if (x < 4) continue;

        // трябва да е съставно
        if (spf[x] == x) continue;

        long long d = count_divisors(x);

        if (isPrimeSmall((int)d)) {
            ans++;
        }
    }

    cout << ans << "\n";
}