Обозначим за m ( = 2003) число строк в таблице, n ( = 2016) - число столбцов
a[i,j] - число, стоящее в i-ой строке, j-ом столбце в таблице, заполненной по горизонталям, b[i,j] - по вертикалям ( i = 1..m, j = 1..n)
Тогда a[i,j] = n*(i-1) + j, b[i,j] = m*(j-1) + i
Условие совпадения чисел в соответствующих клетках: a[i,j] = b[i,j]
2016*(i-1) + j = 2003*(j-1) + i
2016i - 2016 + j = 2003j - 2003 + i
2015i = 2002j + 13 {все числа делятся на 13}
155i = 154j + 1
Общее решение этого уравнения:
i = 1 + 154k
j = 1 + 155k
k = 0..13 (при k < 0 и при k > 13 i и j выходят из допустимого диапазона)
Т.е. всего 14 решений.
Ответ: 14
Итак...
Количество сравнений, это сколько раз твое число приравнивается к другим. Смотря на твою последовательность ты после сортировки массива сравниваешь число 2 со своим массивом. Приравниваешь его к первому числу это у тебя единица. Число один не совпадает с даным по условию числом, значит двигаемся дальше, и это уже будет другое сравнение. И так делаем пока не найдем число "2". Так как это число у тебя на втором месте, количество сравнений будет 2.
Если бы ты искал например число 4 количество сравнений было бы 5, так как число 4 стоит пятым в очереди.
Во вложении
--------------------------------
Ха ты уверена что задача ,именно надо дано решение и формула всего напоминает физику
Var
s,ss:string;
i,j,n,k:integer;
begin
Write('Введите текст: '); Readln(s);
s:=' '+s+' ';
Write('Введите искомое слово: '); Readln(ss);
ss:=' '+ss+' ';
n:=Length(ss);
i:=Pos(ss,s); k:=0;
if i>0 then
repeat
Inc(k);
Delete(s,i,n);
i:=Pos(ss,s);
until i=0;
Writeln('Слово встречается ',k,' раз(а)')
end.
<em><u>Тестовое решение:</u></em>
Введите текст: по дороге, по тропинке, по леску пойдем
Введите искомое слово: по
Слово встречается 3 раз(а)