uses wincrt;
type tab=array[1..25] of integer;
var ta,td,t:tab;
n:integer;
procedure saisie(var t:tab;var n:integer);
var i:integer;
begin repeat write('n=');
readln(n);
until n in [5..25];
for i:=1 to n do repeat
write('t[',i,']='); readln(t[i]);
until (t[i] >0);
end;
function abondant(x:integer):boolean;
var
s,i:integer;
begin s:=0;
for i:=1 to x div 2 do if x mod i =0 then s:=s+i;
if s<x then abondant:=true else abondant:=false;
end;
function deficient(n:integer):boolean;
var
s,i:integer;
begin s:=0;
for i:=1 to n div 2 do if n mod i =0 then s:=s+i;
if s>n then deficient:=true else deficient:=false;
end;
procedure creertdta( var td,ta:tab);
var
i,j,k:integer;
begin k:=0; j:=0;
for i:= 1 to n do begin
if abondant(t[i]) then begin
k:=k+1;
ta[k]:=t[i]
end;
if deficient(t[i]) then begin
j:=j+1;
td[j]:=t[i];
end;
end;
writeln('les nombres abondants sont : ');
for i:= 1 to k do write(ta[i],' | ');
writeln;
writeln('les nombres déficients sont : ');
for i:= 1 to j do write(td[i],' | ');
end;
begin saisie(t,n);
creertdta(td,ta);
end.