Оптимизируйте программы ниже, так что бы они выполнялись за меньшее количество операций. 1) var n , m :integer;
k : real;
begin
readln(n);
m:=0;
while n>0 do begin
m:=m+2*n-1;
n:=n-1;
end;
k:=trunc(sqrt(m));
writeln(k);
end.
2) var n , m, i :integer;
begin
readln(n);
m:=2;
while m
if n mod m = 0 then i:=i+1;
m:=m+1;
end;
if i=0 then writeln(n);
end.
{Процедура построения квадрата при n двойной четности: n=4,8,12,16...}
PascalВыделить код1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 Var i,j,k:integer; p,l:integer; i1,j1,x,y:integer; Begin l:=1; p:=n*n; for i:=1 to n do for j:=1 to n do begin a[i,j]:=l; inc(l) {l:=l+1} end; i:=2; while i<=n-2 do begin if i mod 4=0 then j:=4 else j:=2; while j<=n-2 do begin for i1:=0 to 1 do for j1:=0 to 1 do begin y:=i+i1; x:=j+j1; a[y,x]:=p-a[y,x]+1; end; j:=j+4; end; i:=i+2 end; k:=4; while k<=n-4 do begin a[1,k]:=p-a[1,k]+1; a[1,k+1]:=p-a[1,k+1]+1; a[n,k]:=p-a[n,k]+1; a[n,k+1]:=p-a[n,k+1]+1; a[k,1]:=p-a[k,1]+1; a[k+1,1]:=p-a[k+1,1]+1; a[k,n]:=p-a[k,n]+1; a[k+1,n]:=p-a[k+1,n]+1; k:=k+4 end; a[1,1]:=p-a[1,1]+1; a[n,n]:=p-a[n,n]+1; a[1,n]:=p-a[1,n]+1; a[n,1]:=p-a[n,1]+1; end;
n = int(input("Введіть ширину масиву: "))
b = int(input("Введіть висоту масиву: "))
a = [[randint(10,99) for j in range(n)] for i in range(b)]
par = []
for i in a:
print(i,end=' ')
print()
print()
m = []
kratna_3 = []#числа кратні 3
for x in a:
for q in x:
par.append(q)
if q < 50:
m.append(q)
if q%3==0:
kratna_3.append(q)
#print(par)
parni = par[0::2]#парни елементи
ne_parni = par[1::2]#не парни елементи
#
#print('Парные елементи:\n',parni)
print('Cумму парных элементов массива: ',sum(parni))
#print("Елементи менше 50: \n",m)
print('Kоличество элементов массива, меньших 50: ',len(m))
#print("Непарные: \n",ne_parni)
print("Cреднее арифметическое нечетных элементов массива: ",round(sum(ne_parni)/len(ne_parni),2))
#print("Числа кратні 3:\n",kratna_3)
print("Cумму тех элементов массива, сумма индексов которых кратна трем: ",sum(kratna_3))