Program z1; var a,b,c,d:integer; procedure nod(x,y:integer;var nod2:integer); begin while x<>y do begin if x>y then begin x:=x-y end else begin y:=y-x end end; nod2:=xend; begin write('a=');readln(a); write('b=');readln(b); write('c=');readln(c); write('d=');readln(d); nod(a,b,b); nod(b,c,c); nod(c,d,d); writeln('nod=',d); readln end.
Держи. Программа написана для PascaABC.net. Что бы изменить количество массива - измени значение в графе const в самом верху программы. Первый отрезок программы (до пустой строчки) - заполнение и вывод массива из случайный значений из промежутка [a,b]. Вторая часть программы(в серединке) нахождение таких элементов массива, которые удовлетворяют условиям задачи - т.к. локальный минимум - в занос индексов этих элементов в новый массив d. Последняя строчка - вывод ответ, если массив с индексами пустой - напишет "не найдено" , а если такие элементы есть, то выведет все индексы на экран.
var a,b,c,d:integer;
procedure nod(x,y:integer;var nod2:integer);
begin
while x<>y do begin
if x>y then begin
x:=x-y
end
else begin
y:=y-x
end
end;
nod2:=xend;
begin
write('a=');readln(a);
write('b=');readln(b);
write('c=');readln(c);
write('d=');readln(d);
nod(a,b,b);
nod(b,c,c);
nod(c,d,d);
writeln('nod=',d);
readln
end.