var n,i,j,dem:longint;
f:array[1..9999999] of boolean;
begin
assign(input,'Prime.inp'); reset(input);
assign(output,'Prime.out'); rewrite(output);
readln(n);
dem := 0;
fillchar(f,sizeof(f), true);
for i:=2 to trunc(sqrt(n)) do
if f[i]=true then
begin
j:=i*i;
while j<=n do
begin
f[j]:=false;
inc(j,i);
end;
end;