Дана квадратная матрица. Определить есть ли выше побочной диагонали простое число, большее средней арифм - Turbo Pascal
Формулировка задачи:
Решение задачи: «Дана квадратная матрица. Определить есть ли выше побочной диагонали простое число, большее средней арифм»
function Simple(n: LongInt): boolean; var i: LongInt; begin for i := 2 to Round(Sqrt(n)) do if n mod i = 0 then break; Simple := n mod i <> 0; end; const n = 10; var a: array [1..n, 1..n] of integer; sr: real; i, j: integer; begin randomize; sr := 0; for i := 1 to n do begin for j := 1 to n do begin a[i, j] := random(n); write(a[i, j]:4); sr := sr + a[i, j]; end; writeln; end; sr := sr / (n * n); writeln('Среднее арифметическое: ', sr); Writeln('Элементы, удовлетворяющие условию: '); for i := 1 to n - 1 do for j := 1 to n - i do begin if (Simple(a[i, j])) and (a[i, j] > sr) then write(a[i, j]:4); end; end.
Объяснение кода листинга программы
В данном коде используется функция Simple
, которая проверяет, является ли число n
простым числом, большим средней арифметической. Для этого в функции используется цикл for
, который начинается с числа 2 и продолжается до округленного значения квадратного корня из n
. Если n
делится на какое-либо число из этого диапазона без остатка, то функция возвращает false
, иначе - true
.
Далее в коде определяется константа n
, которая равна 10. Затем создается массив a
, который представляет собой квадратную матрицу размером 10x10. Каждый элемент массива a
инициализируется случайным числом от 0 до 9.
Затем происходит вывод среднего арифметического всех элементов массива a
. После этого происходит вывод элементов массива a
, удовлетворяющих условию - они должны быть простыми числами, большими средней арифметической.
В конце кода выводится сообщение с элементами массива a
, удовлетворяющими условию.