Алгоритм получает на вход натуральное число N > 1 и строит по нему новое число R следующим образом:
1) Если исходное число кратно 2, оно делится на 2, иначе из него вычитается 1.
2) Если полученное на предыдущем шаге число кратно 3, оно делится на 3, иначе из него
вычитается 1.
3) Если полученное на предыдущем шаге число кратно 5, оно делится на 5, иначе из него
вычитается 1.
4) Число, полученное на шаге 3, считается результатом работы алгоритма.
Сколько существует различных натуральных чисел N, при обработке которых получится R =
3?
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк/столбцов в матрице:');
var a:=MatrRandom(n,n,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var ijv:=a.ElementsWithIndexes.Select(x->(x[0],x[1],abs(x[2])))
.MaxBy(x->x[2]);
for var i:=ijv[0] to n-2 do a.SwapRows(i,i+1);
for var j:=ijv[1] to n-2 do a.SwapCols(j,j+1);
SetLength(a,n-1,n-1); a.Println(4)
end.
Пример
Количество строк/столбцов в матрице: 5
87 -5 -38 -9 57
31 66 57 -25 40
11 66 99 -79 91
12 95 93 27 -97
33 -94 14 19 39
87 -5 -9 57
31 66 -25 40
12 95 27 -97
33 -94 19 39