Răspuns :
function f(a:integer):integer;
var i:integer;
begin
for i:=1 to a do
if (a mod i = 0) then
f+=1;
end;
var
a,b,c:array of integer;
i,n,maxd,max,min,l:integer;
t:text;
begin
assign(t,'sortare_divizori.in');
reset(t);
readln(t,n);
setlength(a,n);
setlength(b,n);
setlength(c,n);
for i:=0 to n-1 do
read(t,a[i]);
close(t);
min:=a[1];
max:=a[2];
for i:=0 to n-1 do
begin
if a[i]<min then min:=a[i];
if a[i]>max then max:=a[i];
end;
l:=0;
for min:=min to max do
for i:=0 to n-1 do
if a[i]=min then
begin
c[l]:=min;
inc(l);
end;
assign(t,'sortare_divizori.out');
rewrite(t);
for i:=0 to n-1 do
b[i]:=f(c[i]);
maxd:=b[1];
for i:=0 to n-1 do
if b[i]>maxd then maxd:=b[i];
for maxd:=maxd downto 0 do
for i:=0 to n-1 do
begin
if b[i]=maxd then write(t,c[i],' ');
end;
close(t);
end.
var i:integer;
begin
for i:=1 to a do
if (a mod i = 0) then
f+=1;
end;
var
a,b,c:array of integer;
i,n,maxd,max,min,l:integer;
t:text;
begin
assign(t,'sortare_divizori.in');
reset(t);
readln(t,n);
setlength(a,n);
setlength(b,n);
setlength(c,n);
for i:=0 to n-1 do
read(t,a[i]);
close(t);
min:=a[1];
max:=a[2];
for i:=0 to n-1 do
begin
if a[i]<min then min:=a[i];
if a[i]>max then max:=a[i];
end;
l:=0;
for min:=min to max do
for i:=0 to n-1 do
if a[i]=min then
begin
c[l]:=min;
inc(l);
end;
assign(t,'sortare_divizori.out');
rewrite(t);
for i:=0 to n-1 do
b[i]:=f(c[i]);
maxd:=b[1];
for i:=0 to n-1 do
if b[i]>maxd then maxd:=b[i];
for maxd:=maxd downto 0 do
for i:=0 to n-1 do
begin
if b[i]=maxd then write(t,c[i],' ');
end;
close(t);
end.
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile și inspiraționale. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, suntem aici pentru a vă ajuta. Ne face plăcere să vă revedem și vă invităm să adăugați site-ul nostru la favorite pentru acces rapid!