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 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.
8.4000000000000 байт
9.8 байт