#include<bits/stdc++.h>
using namespace std;
bool isp[50010];
vector <int> prime;
void aioutelanisishai(int n)
{
memset(isp,1,sizeof(isp));
isp[1]=0;
for(int i=2;i*i<=n;i++)
if(isp[i])
{
prime.push_back(i);
for(int k=2;k*i<=n;k++)
isp[i*k]=0;
}
}
int qisp[1000010];//代表从l往后数的第i个数
int main()
{
aioutelanisishai(50000);
int l,r;cin>>l>>r;
memset(qisp,0,sizeof(qisp));
for(int i=0;i<prime.size();i++)
{
for(int j=max(2,(l-1)/prime[i]+1)*prime[i];j<=r;j+=prime[i])
if(j-l>=0) qisp[j-l]=1;
}
int ans=0;
for(int i=0;i<=r-l;i++) ans+=(!qisp[i]);
cout<<ans;
return 0;
}