#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> typedef long long LL; using namespace std; const int N = 1e6+5; bool isprime[N]; bool lowisprime[N]; void segment_even(LL x,LL y) { for(int i=0;(LL)i*i<=y;i++) lowisprime[i] = true; for(int i=0;i<=y-x;i++) isprime[i] = true; for(int i=2;(LL)i*i<=y;i++) { if(lowisprime[i]) { for(int j=i*2;(LL)j*j<=y;j+=i) lowisprime[j] = false; for(LL j=max(2LL,(x+i-1)/i)*i;j<=y;j+=i) isprime[j-x] = false; } } } int main() { LL x,y; scanf("%lld %lld",&x,&y); segment_even(x,y); int cont = 0; for(int i=0;i<=y-x;i++) if(isprime[i]) ++cont; cout<<cont<<endl; }