#include <iostream>
#include <vector>
using namespace std;
vector<bool> seeve(int n)
{
vector<bool>result(n);
for(int i = 4 ; i*i <= n ; i+=3)
{
for(int j = 2 * i ; j <= n ; j += i)
result[j] = true;
}
return result;
}
int main()
{
vector<bool>result;
result = seeve(2147483647);
int sum = 0;
for(int i=3;i<result.size();i++)
if(!result[i])
sum++;
cout << sum << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZlY3Rvcjxib29sPiBzZWV2ZShpbnQgbikKewogICAgdmVjdG9yPGJvb2w+cmVzdWx0KG4pOwogICAgZm9yKGludCBpID0gNCA7IGkqaSA8PSBuIDsgaSs9MykKICAgIHsKICAgICAgICBmb3IoaW50IGogPSAyICogaSA7IGogPD0gbiA7IGogKz0gaSkKICAgICAgICAgICAgcmVzdWx0W2pdID0gdHJ1ZTsKICAgIH0KICAgIHJldHVybiByZXN1bHQ7Cn0KCmludCBtYWluKCkKewogICAgdmVjdG9yPGJvb2w+cmVzdWx0OwogICAgcmVzdWx0ID0gc2VldmUoMjE0NzQ4MzY0Nyk7CiAgICBpbnQgc3VtID0gMDsKICAgIGZvcihpbnQgaT0zO2k8cmVzdWx0LnNpemUoKTtpKyspCiAgICAgICAgaWYoIXJlc3VsdFtpXSkKICAgICAgICAgICAgc3VtKys7CiAgICBjb3V0IDw8IHN1bSA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0=