Pagini recente » Cod sursa (job #1681939) | Cod sursa (job #2893657) | Cod sursa (job #2427732) | Cod sursa (job #1712612) | Cod sursa (job #286847)
Cod sursa(job #286847)
program aliu;
type vector=array[1..1000] of longint;
var f:text;
a,b:vector;
e:boolean;
v:array[1..1000] of 0..1;
i,j,n,nr,k,x,kk:longint;
procedure poz(li,ls:longint;var kk:longint;var a:vector);
var p,q,c,p1,q1:longint;
begin
p1:=0;
q1:=-1;
p:=li;
q:=ls;
while p<q do
begin
if a[p]>a[q] then begin
c:=a[p];
a[p]:=a[q];
a[q]:=c;
c:=p1;
p1:=-q1;
q1:=-c
end;
p:=p+p1;
q:=q+q1;
end;
kk:=p;
end;
procedure quick(li,ls:longint);
begin
if li<ls then begin
poz(li,ls,kk,a);
quick(li,kk-1);
quick(kk+1,ls)
end;
end;
begin
assign(f,'economie.in');
reset(f);
readln(f,n);
for i:=1 to n do readln(f,a[i]);
close(f);
assign(f,'economie.out');
rewrite(f);
quick(1,n);
nr:=0;
for i:=1 to n do
if v[i]=0 then begin
nr:=nr+1;
b[nr]:=a[i];
for j:=i+1 to n do
if (a[j] mod a[i])=0 then v[j]:=1;
e:=false;
repeat
for j:=1 to n do
for k:=1 to n do
if (v[j]=1)and(v[k]=1) then if (j+k<=n) then begin
v[j+k]:=1;
e:=true
end
until not e;
end;
writeln(f,nr);
for i:=1 to nr do writeln(f,b[i]);
close(f);
end.