program presqpremier;
uses wincrt;
type
tab=array[1..50] of integer;
var t:tab;
k,n:integer;
procedure saisie(var t:tab; var n:integer);
var
i: integer;
begin repeat
writeln('Donner n entre 5 et 50 ');
readln(n);
until n in [1..50];
for i:= 1 to n do repeat
writeln('Donner T[',i,']= ');
readln(t[i]);
until (t[i]>=100)and (t[i]<=999);
end;
function premier(i:integer):boolean;
var
j,r:integer;
begin r:=0;
for j:=2 to i div 2 do if i mod j = 0 then r:=r+1;
premier:=r=0;
end;
function kpp(x:integer):integer;
var
vx,i,vk,p:integer;
begin p:=1;
vk:=0;
i:=2;
vx:=x;
repeat
if( vx mod i=0) and premier(i) then begin
vk:= vk+1;
p:=p*i;
vx:=vx div i;
end else i:=i+1;
until (p=vx)or (i=x);
kpp:=vk;
end;
procedure affiche(t:tab;n,k:integer);
var
i:integer;
begin
for i:=1 to n do if kpp(t[i])=k then writeln(t[i]);
end;
begin
saisie(t,n);
k:=random(4)+2;
writeln('k =',k);
affiche(t,n,k);
end.