Pagini recente » Monitorul de evaluare | Cod sursa (job #2258345) | Cod sursa (job #397690) | Cod sursa (job #1199071) | Cod sursa (job #427469)
Cod sursa(job #427469)
program primeknig;
const bitek:array[0..7] of byte = (1,2,4,8,16,32,64,128);
var be,ki:text;
v:array[1..125000] of byte;
n,i,j,kl:longint;
function bennevanx( x:longint ):boolean;inline;
var m:byte;
begin
m:= x and 7;
x:= x shr 3;
bennevanx := ((v[x]) and (bitek[m])) <> 0;
end;
procedure berakx( x:longint );inline;
var m:byte;
begin
m:= x and 7;
x:= x shr 3;
if ((v[x]) and (bitek[m])) = 0 then
begin
v[x]:= v[x] or bitek[m];
inc(kl);
end;
end;
begin
assign(be,'ciur.in');
assign(ki,'ciur.out');
reset(be);
rewrite(ki);
readln(be,n);
i:=3;
kl:= n div 2 - 1;
while i*i <= n do
begin
j:=i*i;
while j <= n do
begin
if odd(j) then berakx( j shr 1 );
j:=j + i;
end;
repeat
i:=i+2
until not( bennevanx( i shr 1 ) );
end;
writeln(ki,n-kl-1);
close(ki);
end.