﻿program A8;

const
  max_idx = 7;//может быть любым. 

type
  vector = array[1..max_idx]of integer;
  resvec = array[0..max_idx*max_idx] of integer;

var
  ar: vector;// массив исходных данных
  pr: resvec;// массив сил пар
  i, j, k: byte;
  ax, bx: integer;

// простой линейный сорт
procedure simple_sort(var vt: resvec);
var
  i, j: integer;
  ax:integer;
begin
  for i := 1 to vt[0]-1 do 
    for j := i + 1 to vt[0] do 
      if vt[i] > vt[j] then begin
        ax := vt[i];
        vt[i] := vt[j];
        vt[j] := ax;
      end;
  
end;

begin
  randomize();
  for i := 1 to max_idx do
    ar[i] := random(64);
  writeln('Массив случайных чисел: ', ar);

  //составляем все возможны пары и сохраняем их "силу"
  bx:=1; //индекс пары 
  for i:=1 to max_idx-1 do begin
    for j:=i+1 to max_idx do begin
      pr[bx] := ar[i] * ar[j];  
      write('[',bx,']. ', ar[i], '*', ar[j],'=', pr[bx], ', ');
      bx := bx+1;
    end;
    writeln(' ');
  end;
  bx := bx-1;
  writeln(bx, ' возможных пар чисел сохранено');
  pr[0] := bx;
  simple_sort(pr);
  writeln('Массив сил отсортирован в порядке неубывания');
  
  bx:=1; //индекс пары 
  j:=1;//для переноса строки
  for i:=1 to pr[0] do begin
    write('[',i,'] ', pr[i], ', ');  
    if (j>max_idx+1) then begin
      writeln(' ');
      j := 1;
    end;
    j := j+1;
  end;
  
  writeln(' ');
  write('Введите номер пары силу которой необходимо узнать : ');
  readln(ax);
  writeln('Значение силы для пары номер [', ax, '] = ', pr[ax] );
end.