program cntprim (input,output);
var N , i, j ,m , counter : integer;
a : array [1..5000000] of boolean;
begin
read(N);
for i:=1 to N do a[i]:=true;
m:=trunc(sqrt(N));
for i:=2 to m do
if a[i] then for j:=2 to N div i do a[i*j]:=false;
counter:=0;
for i:=2 to N do if a[i] then counter:=counter+1;
writeln(counter);
end.
cHJvZ3JhbSBjbnRwcmltIChpbnB1dCxvdXRwdXQpOwogICAgdmFyIE4gLCBpLCBqICxtICwgY291bnRlciA6IGludGVnZXI7CiAgICAgICAgYSA6IGFycmF5IFsxLi41MDAwMDAwXSBvZiBib29sZWFuOwpiZWdpbgogICAgcmVhZChOKTsKICAgIGZvciBpOj0xIHRvIE4gZG8gYVtpXTo9dHJ1ZTsKICAgIG06PXRydW5jKHNxcnQoTikpOwogICAgZm9yIGk6PTIgdG8gbSBkbyAKICAgICAgaWYgYVtpXSB0aGVuIGZvciBqOj0yIHRvIE4gZGl2IGkgZG8gYVtpKmpdOj1mYWxzZTsKICAgIGNvdW50ZXI6PTA7CiAgICBmb3IgaTo9MiB0byBOIGRvIGlmIGFbaV0gdGhlbiBjb3VudGVyOj1jb3VudGVyKzE7CiAgICB3cml0ZWxuKGNvdW50ZXIpOyAgICAKZW5kLg==