Cod sursa(job #196113)
program gaju;
var n,i,y,x,k,max,j,aux:byte;
a:array[1..100]of byte;
p:int64;
f,g:text;
begin
assign(f,'factoriale.in');
assign(g,'factoriale.out');
reset(f);
rewrite(g);
readln(f,n,k);
max:=0;
for i:=1 to n do begin
read(f,x);
for y:=2 to x do begin
aux:=y;j:=2;
while aux<>1 do begin
while aux mod j=0 do begin a[j]:=a[j]+1;
aux:=aux div j;
end;
j:=j+1;
end;
if j-1>max then max:=j-1;
end;
end;
p:=1;
for i:=2 to max do
if (a[i]mod k<>0)and(a[i]<>0) then begin
if a[i]>k then y:=k-(k mod a[i])
else y:=k-a[i];
for j:=1 to y do begin p:=p*i;
end;
end;
write(g,p);
close(f);close(g);
end.