program ex_09_30_s1;
uses wincrt;
type
tab =array[1..100]of integer;
ttab=array[1..10] of integer;
var
i,L,j,n,pp,max:integer;
t,p:tab;
v:ttab;
procedure saisie (var t:tab; var n:integer);
begin
repeat
writeln('Donner N entre 10..100 ');
readln(n);
until n in [5..100];
for i:=1 to n do repeat
writeln('Donner T ',i);
readln(t[i]);
until (t[i]>=1000) and (t[i]<=9999);
end;
procedure former (x:integer;var v:ttab);
begin v[1]:=x ;
v[2]:= x div 10;
v[3]:= x mod 1000;
v[4]:= x div 100;
v[5]:= x mod 1000 div 10;
v[6]:= x mod 100;
v[7]:= x div 1000;
v[8]:= x mod 1000 div 100;
v[9]:= x mod 100 div 10;
v[10]:= x mod 10 ; end;
function premier(y:integer):boolean;
var dd,k:integer;
begin dd:=0;
if y <> 1 then begin
for k:=2 to y-1 do if y mod k =0 then dd:=dd+1;
premier:=dd=0;
end else
premier:=false;
end;
begin
saisie(t,n);
writeln('La liste des Residents gagnants est :');
for i:=1 to n do begin
former (t[i],v);
pp:=0;
for j:=1 to 10 do if premier(v[j]) then inc(pp);
p[i]:=pp;
end;
max:=p[1];
for i:=2 to n do if p[i]>max then max:=p[i];
for i:=1 to n do if p[i]=max then write(t[i],' | ');
end.