Pagini recente » Monitorul de evaluare | Cod sursa (job #2807507) | Cod sursa (job #670825) | Cod sursa (job #1653440) | Cod sursa (job #146816)
Cod sursa(job #146816)
var n,i,s,j,m:longint;
v:array[1..2000000] of boolean;
p:array[1..10000] of longint;
f,g:text;
begin
assign(f,'ciur.in');
assign(g,'ciur.out');
reset(f);
rewrite(g);
readln(f,n);
for i:=1 to n do
v[i]:=true;
v[1]:=false;
s:=trunc(sqrt(n));
m:=0;
for i:=2 to s do
if v[i] then begin
j:=i+i;
while j<=n do begin
v[j]:=false;
j:=j+i
end;
end;
for i:=n downto 2 do
if v[i] then inc(m);
i:=n; j:=0;
while(i>=2)and(j<1000) do
begin
if v[i] then begin
inc(j);
p[j]:=i
end;
i:=i-1
end;
writeln(g,m);
if m>1000 then m:=1000;
for i:=m downto 1 do write(g,p[i],' ');
close(f);
close(g);
end.