#include<iostream>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define ll long longusingnamespacestd;
constint maxn=10000007;
int f[maxn],n,i,t,j,k,l,x,y,z;
ll m,d[maxn],p,ans;
bool bz[maxn],bz1;
int main(){
// freopen("data.in","r",stdin);scanf("%d%lld",&n,&m);
f[1]=1;
for (i=2;i<=n;i++){
if (!bz[i]) d[++d[0]]=i,f[i]=i;
for (k=1;k<=d[0];k++){
if (i*d[k]>n) break;bz[i*d[k]]=true;
if (i%d[k]) f[i*d[k]]=f[i]*d[k];
else{
if (f[i]%d[k])f[i*d[k]]=f[i]*d[k];
else f[i*d[k]]=f[i]/d[k];
break;
}
}
}
for (i=1;i<=n;i++){
t=sqrt(m/f[i]);
if (t%2) ans--;
else ans++;
}
printf("%d\n",ans);
}