Cod sursa(job #152397)

Utilizator DonPushmeMilitaru Adrian DonPushme Data 9 martie 2008 13:55:49
Problema Ciurul lui Eratosthenes Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.72 kb
type vec=array[1..2000000] of 0..1;
     vec2=array[1..2000] of longint;
var v:vec;
    v2:vec2;
    n,i,j,k:longint;

procedure ciur;
var i,j:longint;
begin
k:=0;
for i:=2 to n do
	if v[i]=0 then
		begin
                inc(k);
		j:=i+i;
		while j<=n do
			begin
			v[j]:= 1;
			j:=j+i;
			end;
		end;
end;
begin {main}
assign(input,'ciur.in');reset(input);
assign(output,'ciur.out');rewrite(output);

read(n);
ciur;
writeln(k);

if k>1000 then
	begin
	j:=0;
   	i:=n;
	while j<1000 do
		begin
        	if v[i]=0 then
			begin
			inc(j);
			v2[j]:=i;
			end;
		i:=i-1;
		end;
	for j:=1000 downto 1 do
		write(v2[j],' ');
	end
	  else
	for i:=2 to n do
		if v[i]=0 then write(i,' ');
end.