В шестеричной системе алфавит состоит из цифр 0,1,...5. Четырехразрядное число по условиям задания (1) и (2) имеет вид aabb, где a=1,2,...5, b=0,1,...5. В развернутой записи число имеет вид a×6³+a×6²+b×6+b×1 = 6²×a(6+1)+b(6+1) = 7(36a+b) При этом по условию (3) можно записать, что k² = 7(36a+b) Чтобы число 7(36a+b) было полным квадратом, 36a+b должно быть кратно 7, а остаток от деления (36a+b) на 7 также должен быть полным квадратом. Получаем, что 36a+b = 7m² Минимальное значение 36a+b равно 36×1+0 = 36, следовательно m>2 (при m=2 получим 7×4=28, что меньше 36). При m=3 получаем 36a+b = 63 и при a∈[1;5], b∉[0;5] решений нет. При m=4 получаем 36a+b = 112 и находим a=3, b=4 - есть решение! При m=5 получаем 36a+b = 175 и при a∈[1;5], b∉[0;5] решений нет. При m=6 получаем 36a+b = 175 и получаем, что a=7, а это недопустимо. Дальше смысла проверять нет. Итак, a=3, b=4, число 3344₆ = 7×(36×3+4) = 784₁₀ = 28²
var a: array[1..nn, 1..mm] of integer; i, j, m, n, n1,n2,sj: integer;
begin { Формирование массива и вывод его элементов. Попутный подсчет количества четных и нечетных элементов } n1:=0; n2:=0; Write('Введите через пробел число строк и столбцов массива: '); Readln(n, m); Randomize; Writeln('Исходный массив'); for i := 1 to n do begin for j := 1 to m do begin a[i, j] := Random(101) - 50; Write(a[i, j]:4); if (a[i,j] mod 2=0) then n2:=n2+1 else n1:=n1+1 end; Writeln end; { Сравнение и ветвление } if n2>n1 then { Уменьшить вдвое все положительные элементы } begin Writeln('Результирующий массив'); for i:=1 to n do begin for j:=1 to m do begin if a[i,j]>0 then a[i,j]:=a[i,j] div 2; Write(a[i,j]:4) end; Writeln end end else begin { Найти суммы отрицательных элементов каждого столбца } Writeln('Суммы отрицательных элементов по столбцам'); for j:=1 to m do begin sj:=0; for i:=1 to n do if a[i,j]<0 then sj:=sj+a[i,j]; Write(sj,' ') end end end.
Четырехразрядное число по условиям задания (1) и (2) имеет вид aabb,
где a=1,2,...5, b=0,1,...5.
В развернутой записи число имеет вид
a×6³+a×6²+b×6+b×1 = 6²×a(6+1)+b(6+1) = 7(36a+b)
При этом по условию (3) можно записать, что k² = 7(36a+b)
Чтобы число 7(36a+b) было полным квадратом, 36a+b должно быть кратно 7, а остаток от деления (36a+b) на 7 также должен быть полным квадратом.
Получаем, что 36a+b = 7m²
Минимальное значение 36a+b равно 36×1+0 = 36, следовательно m>2 (при m=2 получим 7×4=28, что меньше 36).
При m=3 получаем 36a+b = 63 и при a∈[1;5], b∉[0;5] решений нет.
При m=4 получаем 36a+b = 112 и находим a=3, b=4 - есть решение!
При m=5 получаем 36a+b = 175 и при a∈[1;5], b∉[0;5] решений нет.
При m=6 получаем 36a+b = 175 и получаем, что a=7, а это недопустимо. Дальше смысла проверять нет.
Итак, a=3, b=4, число 3344₆ = 7×(36×3+4) = 784₁₀ = 28²
ответ: 3344
nn = 20;
mm = 20;
var
a: array[1..nn, 1..mm] of integer;
i, j, m, n, n1,n2,sj: integer;
begin
{ Формирование массива и вывод его элементов.
Попутный подсчет количества четных и нечетных элементов }
n1:=0; n2:=0;
Write('Введите через пробел число строк и столбцов массива: ');
Readln(n, m);
Randomize;
Writeln('Исходный массив');
for i := 1 to n do
begin
for j := 1 to m do
begin
a[i, j] := Random(101) - 50;
Write(a[i, j]:4);
if (a[i,j] mod 2=0) then n2:=n2+1 else n1:=n1+1
end;
Writeln
end;
{ Сравнение и ветвление }
if n2>n1 then
{ Уменьшить вдвое все положительные элементы }
begin
Writeln('Результирующий массив');
for i:=1 to n do
begin
for j:=1 to m do
begin
if a[i,j]>0 then a[i,j]:=a[i,j] div 2;
Write(a[i,j]:4)
end;
Writeln
end
end
else
begin
{ Найти суммы отрицательных элементов каждого столбца }
Writeln('Суммы отрицательных элементов по столбцам');
for j:=1 to m do
begin
sj:=0;
for i:=1 to n do
if a[i,j]<0 then sj:=sj+a[i,j];
Write(sj,' ')
end
end
end.
Тестовое решение:
Введите через пробел число строк и столбцов массива: 8 5
Исходный массив
13 -23 25 2 -36
-19 47 -7 -24 -34
-21 12 -29 46 -46
18 -3 12 -26 -8
-36 -39 -27 -48 -44
-25 -4 -23 -11 -15
49 24 -5 28 32
-37 -32 -34 39 45
Суммы отрицательных элементов по столбцам
-138 -101 -125 -109 -183