begin var n := ReadlnInteger('n = '); var m := ReadlnInteger('m = '); var rand := ReadlnInteger('Для ручного ввода нажмите 0');
if rand = 0 then begin a := new integer[m, n]; for var i := 0 to m-1 do for var j := 0 to n-1 do a[i, j] := ReadlnInteger('a[' + i + ',' + j + '] = '); end else a := MatrixRandom(m, n, 1, 100); Println(a);
var b := ArrGen(n, x -> 1); for var i := 0 to m-1 do for var j := 0 to n-1 do if j mod 2 = 0 then b[j] := b[j] * a[i, j];
b.Where((x, i)-> i mod 2 = 0).SortedDescending().Println(); end.
Для облегчения выкладок разделим эти 64 множителя на шесть групп по 10 двоек в каждой и одну последнюю группу из четырех двоек. Произведение 10 двоек, как легко убедиться, равно 1024, а четырех двоек— 16. Значит, искомый результат равен 1024 X 1024 X 1024 X 1024 X 1024 X 1024 X 16.Перемножив 1024 X 1024, получим 1 048 576.Теперь остается найти 1048 576X1048 576X1048 576X16, отнять от результата единицу — и нам станет известно искомое число зерен: 18 446 744 073 709 551615. Известно, что кубический метр пшеницы вмещает около 15 миллионов зерен. Значит, награда шахматного изобретателя должна была бы занять объем примерно в 12 000 000 000 000 куб. м. Кстати, это геометрическая прогрессия и ее нужно было кидать в раздел "математика".