Так как в задаче идет речь о матрице, то возможные варианты такой матрицы (исключаем 1х30 и 30х1):
2х15
3х10
5х6
Далее повторения (меняются столбцы и строки)
6х5
10х3
15х2
Попробуем написать программу, которая создает нужную матрицу по первому числу (количество строк) и заполняет ее:
//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016)
var
a:array[,] of integer;
n,m,i,j,k:integer;
begin
k:=1;
write('Введите количество строк (одно число из 2,3,5,6,10,15) ');
readln(n); m:=30 div n;
a:=new integer[n,m];
for i:=0 to n-1 do begin
for j:=0 to m-1 do begin
a[i,j]:=k; k:=k+1;
write(a[i,j]:3);
end;
writeln;
end;
end.
Тест №1
Введите количество строк 5
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
Тест №2
Введите количество строк 3
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30