uses crt;
const nmax=20;
var M:array[1..nmax,1..nmax] of integer;
n,q,i,j,p:byte;
k:integer;
b,f:boolean;
begin
clrscr;
randomize;
repeat
write('Количество строк до ',nmax,' n=');
readln(n);
until n in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' q=');
readln(q);
until q in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to q do
begin
M[i,j]:=random(30)+1;
write(M[i,j]:4);
end;
writeln;
end;
writeln;
write('Введите целое число для проверки кратности k=');
readln(k);
writeln('Строки, в которых есть элементы, кратные ',k);
f:=false;
for i:=1 to n do
begin
b:=false;
for j:=1 to q do
if M[i,j] mod k=0 then
begin
b:=true;
break;
end;
if b then
begin
f:=true;
write('Строка ',i:2);
for p:=1 to q do
write(M[i,p]:4);
writeln;
end;
end;
if not f then write('Таких строк нет');
readln
end.