#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<fstream>
#include<unordered_map>
#define all(a) a.begin(), a.end()
#define fr(i, zz, zzz) for (int i = zz; i <= zzz; i++)
#define ll long long
#define pii pair<int, int>
#define frr(i, zz, zzz) for (int i = zz; i >= zzz; i--)
#define full(asdf) memset(asdf, 0, sizeof(asdf))
#define st first
#define nd second
#define IOS ios_base::sync_with_stdio(0);   cin.tie(0); cout.tie(0);
using namespace std;
const int N = 1E4 + 1;
fstream f,g;
ll l, r;
bool a[N];
void check() {
	a[0] = 1;
	a[1] = 1;
	for (int i = 2; i*i <= N; ++i)
		if (a[i] == 0)
			for (int j = i*i; j <= N; j += i)
				a[j] = 1;
}
bool divider(ll x) {
	int cnt = 2;
	for(ll i = 2; i*i < x; ++i) {
		if (x % i == 0)
			cnt += 2;
	}
	cnt += 1;
	return (a[cnt] == 0);
}
void solve() {
	int res = 0;
	ll i = sqrt(l);
	for (i; i*i <= r; ++i) {
		
		if (i <= 1) {
			continue;
		}
		
		if (divider(i*i) == true) {
	//		cout << i*i << "\n";
			++res;
		}
			
	}
	cout << res;
	return;
}
int main () {
	check();
	IOS
	f.open("BAI4.INP", ios::in);
	g.open("BAI4.OUT", ios::out);
	cin >> l >> r;
	solve();
}
