#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef pair<ll,ll> P;
typedef vector<ll> VI;
typedef vector<VI> VVI;
#define REP(i,n) for(int i=0;i<(n);i++)
#define ALL(v) v.begin(),v.end()
template<typename T> bool chmax(T &x, const T &y) {return (x<y)?(x=y,true):false;};
template<typename T> bool chmin(T &x, const T &y) {return (x>y)?(x=y,true):false;};
constexpr ll MOD=998244353;
constexpr ll INF=2e18;

int main() {
    ll l, r; cin >> l >> r;
    VI f(r-l+1,0);
    ll rt;
    for(ll i=1;i<=1000000;i++){
        ll s=(l/i)*i;
        if(s<l) s+=i;
        for(ll j=s;j<=r;j+=i){
            rt=sqrt(j/i);
            if(rt!=1&&rt*rt==j/i)
                f[j-l]=1;
        }
        if(i==1) continue;
        ll k=i*i;
        s=(l/k)*k;
        if(s<l) s+=k;
        for(ll j=s;j<=r;j+=k){
            f[j-l]=1;
        }
    }
    int ans=0;
    for(ll i=l;i<=r;i++)
        ans+=!f[i-l];
    cout << ans << endl;
    return 0;
}