Var A:array[1..60] of integer; k,i,MIN,ind, MAX,SUM:integer; begin SUM:=0; readln(k); randomize; writeln('Исходный массив:'); for i:=1 to 60 do begin A[i]:=random(15)-5; Writeln('A[',i,']=',A[i]); end; MIN:=32600; MAX:=-32600; for i:=1 to 60 do //Ищем минимальный элемент begin if a[i]<MIN then MIN:=a[i]; ind:=i; end; for i:=1 to 60 do //Ищем максимальный элемент if a[i]>MAX then MAX:=a[i]; for i:=60 downto 60-k do //Сумма последних k элементов SUM:=SUM+a[i]; A[ind]:=SUM; if A[1]>=0 then for i:=1 to 60 do begin A[i]:=A[i]*sqr(MIN); Writeln('A[',i,']=',A[i]); end else for i:=1 to 60 do begin A[i]:=A[i]*sqr(MAX); Writeln('A[',i,']=',A[i]); end; end.
В простонародье - разложить число на множители. Для этого тебе нужно перебирать все простые числа, и смотреть, делится ли это число на них. Причём, на каждое из них нужно делить несколько раз до победного конца. Простые числа есть смысл брать только до N/2-1, где N - само число. Таблицу простых числел можно составить заранее (я не думаю, что задача предусматривать работу с двадцатизначными числами, поэтому хватит числе в пределах 2 миллиардов) . Вот только поиск простых чисел подразумевает решение этой же самой задачи.
A:array[1..60] of integer;
k,i,MIN,ind, MAX,SUM:integer;
begin
SUM:=0;
readln(k);
randomize;
writeln('Исходный массив:');
for i:=1 to 60 do
begin
A[i]:=random(15)-5;
Writeln('A[',i,']=',A[i]);
end;
MIN:=32600;
MAX:=-32600;
for i:=1 to 60 do //Ищем минимальный элемент
begin
if a[i]<MIN then
MIN:=a[i];
ind:=i;
end;
for i:=1 to 60 do //Ищем максимальный элемент
if a[i]>MAX then
MAX:=a[i];
for i:=60 downto 60-k do //Сумма последних k элементов
SUM:=SUM+a[i];
A[ind]:=SUM;
if A[1]>=0 then
for i:=1 to 60 do
begin
A[i]:=A[i]*sqr(MIN);
Writeln('A[',i,']=',A[i]);
end
else
for i:=1 to 60 do
begin
A[i]:=A[i]*sqr(MAX);
Writeln('A[',i,']=',A[i]);
end;
end.