Pagini recente » Cod sursa (job #745594) | Cod sursa (job #2196180) | Cod sursa (job #91544) | Cod sursa (job #2761567) | Cod sursa (job #427405)
Cod sursa(job #427405)
program ciur;
type sett = set of 0..31;
var v:array[1..250000] of sett;
n:longint;
be,ki:text;
i,j:longint;
procedure berak(x:longint);inline;
var m:byte;
begin
//write('berak ',x);
m:=x mod 32;
x:=x div 32;
v[ x ] := v[ x ] + [ m ];
//writeln(' (',x,';',m,') ');
end;
function bennevan(x:longint):boolean;inline;
var m:byte;
begin
//write('bennevan? ',x);
m:=x mod 32;
x:=x div 32;
bennevan := m in v[x];
//writeln(' (',x,';',m,') ',m in v[x]);
end;
procedure kovprim;inline;
begin
if odd(i) then i:=i+2
else i:=i+1;
while bennevan(i) do
i:=i+2;
end;
begin
assign(be,'ciur.in');
assign(ki,'ciur.out');
reset(be);
rewrite(ki);
readln(be,n);
i:=2;
while i*i <= n do
begin
j:=i*i;
while j <= n do
begin
berak( j );
j:=j + i;
end;
kovprim;
end;
j:=0;
for i:=2 to n do
if not bennevan(i) then inc(j);
writeln(ki,j);
close(ki);
end.