#include<bits/stdc++.h>
using namespace std;
bool mark[100000000];
int tot=0;
int a[100000000];
void pr(int n)
{ mark[1]=1 ;
for(int i=2;i<=n;i++)
{
if(mark[i]==false)a[++tot]=i;
for(int j=1;j<=tot;j++)
{
if(i*a[i]>n)break;
mark[a[j]*i]=true;
// if(i%a[j]==0)break;
}
}
}
int main()
{
int n,m;
cin>>n;
pr(n);
cout<<tot;
}
QWQ

#include<bits/stdc++.h>
using namespace std;
bool mark[100000000];
int tot=0;
int a[100000000];
void pr(int n)
{ mark[1]=1 ;
for(int i=2;i<=n;i++)
{
if(mark[i]==false)a[++tot]=i;
for(int j=1;j<=tot;j++)
{
if(i*a[i]>n)break;
mark[a[j]*i]=true;
// if(i%a[j]==0)break;
}
}
}
int main()
{
int n,m;
cin>>n;
pr(n);
cout<<tot;
}