#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
long long n;
int mu[500000],p[500000],prime[500000],cnt;
long long sqr(long long x){return x*x;}
long long S1(long long n)
{
long long ans=0;
for(int i=1;1ll*i*i<=n;i++)
{
long long tn=n/i;
for(int j=i+1,lt;j<=(2*i-1)&&j<=tn;j=lt+1)
{
lt=min(tn/(tn/j),2*i-1LL);
ans=(ans+(lt-j+1)*(tn/j));
}
}
return ans;
}
void make(int n)
{
mu[1]=p[1]=1;
for(int i=2;i<=n;i++)
{
if(!p[i])prime[++cnt]=i,mu[i]=-1;
for(int j=1;j<=cnt&&i*prime[j]<=n;j++)
{
int x=i*prime[j];p[x]=1;
if(i%prime[j])mu[x]=-mu[i];
else break;
}
}
}
long long S2(long long n)
{
long long ans=0;
for(int i=1;1ll*i*i<=n*2;i++)
{
long long tn=n/i;
for(int j=(i>>1)+1,lt;j<i&&j<=tn;j=lt+1)
{
lt=min(tn/(tn/j),i-1LL);
ans=(ans+(lt-j+1)*(tn/j));
}
}
return ans;
}
int main()
{
scanf("%lld",&n);
make(sqrt(n));long long ans=0;
int lim1=(sqrt(n)+1)/2;
for(int i=1;i<=lim1;i++)
ans=(ans+mu[(i<<1)-1]*S1(n/(2*(sqr(2*i-1)))));
lim1=sqrt(n)/2;
for(int i=1;i<=lim1;i++)
ans=(ans+mu[i<<1]*S2(n/sqr(2*i)));
cout<<ans<<endl;
}