Pagini recente » Cod sursa (job #408700) | Cod sursa (job #1978030) | Cod sursa (job #712152) | Cod sursa (job #1389998) | Cod sursa (job #214722)
Cod sursa(job #214722)
program pascal;
var f,g:text;
n:0..1000;
i,k,j,p,q,aux:0..100000;
v,t:array[0..1000] of 0..50000; ok:boolean;
x:array[0..100000] of 0..50000000;
{procedure quicksort(s,d:integer);
var a,b,ia,aux:integer;
begin
a:=s; b:=d;
repeat
while v[a]<v[b] do b:=b-1;
aux:=v[a];
v[a]:=v[b];
v[b]:=aux;
ia:=1;
a:=a+1;
if a<b then
begin
while v[a]<v[b] do a:=a+1;
if a<>b then
begin
aux:=v[a];
v[a]:=v[b];
v[b]:=aux;
ia:=0;
b:=b-1;
end;
end;
until a>b;
if s<a-ia then quicksort(s,a-ia);
if a-ia+1<d then quicksort(a-ia+1,d);
end; }
begin
assign(f,'economie.in'); reset(f);
assign(g,'economie.out'); rewrite(g);
readln(f,n);
for i:=1 to n do readln(f,v[i]);
{quicksort(1,n);}
repeat
ok:=true;
for i:=1 to n-1 do
if v[i]>v[i+1] then
begin
aux:=v[i];
v[i]:=v[i+1];
v[i+1]:=aux;
ok:=false;
end;
until ok;
k:=1;
t[1]:=v[1];
x[1]:=t[1];
q:=1;
for i:=2 to n do
begin
ok:=true;
for j:=1 to q do
if v[i] mod x[j]=0 then
begin
ok:=false;
break;
end;
if ok then
begin
k:=k+1;
t[k]:=v[i];
aux:=q;
for j:=1 to q do
begin
inc(aux);
x[aux]:=x[j]+v[i];
end;
inc(aux);
x[aux]:=v[i];
q:=aux;
end;
end;
writeln(g,k);
for p:=1 to k do writeln(g,t[p]);
close(f);
close(g);
end.