Function IsPrime(n:integer):Boolean;
var
p:integer;
found:Boolean;
begin
found:= (n Mod 2 = 0);
p:=3;
while (not found) and (sqr(p)<=n) do<br> begin
found:=(n Mod p = 0);
p:=p+2
end;
IsPrime:=(not found) or (p = 2)
end;
const
n = 12;
var
a:array[1..n,1..n] of integer;
i,j,s,k:integer;
begin
Randomize;
Writeln('Исходный массив');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=Random(99)+1; { интервал [1..99] }
Write(a[i,j]:3)
end;
Writeln
end;
{ решаем }
s:=0;
for i:=1 to n do
begin
k:=a[i,i];
if IsPrime(k) then a[i,i]:=s;
s:=s+a[i,i]
end;
{ выводим }
Writeln('Результирующий массив');
for i:=1 to n do
begin
for j:=1 to n do Write(a[i,j]:5);
Writeln
end
end.
Тестовое решение:
Исходный массив
55 99 73 7 53 15 30 67 59 59 56 30
81 6 39 10 10 11 60 74 74 48 78 75
24 40 34 44 31 95 75 52 47 66 58 24
87 99 86 92 41 76 44 4 31 57 34 13
31 48 84 80 39 61 86 7 21 97 83 14
80 85 37 63 84 5 82 16 47 16 22 11
24 68 34 97 5 74 45 66 6 22 14 83
12 94 13 86 79 52 4 89 16 73 12 55
40 80 20 27 74 19 65 16 26 74 57 71
28 88 3 46 53 17 8 59 72 54 52 90
91 96 36 95 13 33 94 50 56 78 58 24
55 19 91 86 56 98 57 37 38 42 58 91
Результирующий массив
55 99 73 7 53 15 30 67 59 59 56 30
81 6 39 10 10 11 60 74 74 48 78 75
24 40 34 44 31 95 75 52 47 66 58 24
87 99 86 92 41 76 44 4 31 57 34 13
31 48 84 80 39 61 86 7 21 97 83 14
80 85 37 63 84 226 82 16 47 16 22 11
24 68 34 97 5 74 45 66 6 22 14 83
12 94 13 86 79 52 4 497 16 73 12 55
40 80 20 27 74 19 65 16 26 74 57 71
28 88 3 46 53 17 8 59 72 54 52 90
91 96 36 95 13 33 94 50 56 78 58 24
55 19 91 86 56 98 57 37 38 42 58 91