#include <cstdlib>
#include <iostream>
using namespace std;
int NOD( int a, int b)
{
int c=1;
int d;
if(a>b)
d=b;
else
d=a;
for(int j=1;j<=d;j++)
{
if(a%j==0 && b%j==0)
c=j;
}
return c;
}
int main()
{
int A,B,C;
cout<<"Введите А"<<endl;
cin>>A;
cout<<"Введите В"<<endl;
cin>>B;
cout<<"Введите С"<<endl;
cin>>C;
cout<<"НОД("<<A<<","<<B<<","<<C<<")="<<NOD(NOD(A,B),C)<<endl;
system("PAUSE");
return 0;
}
(Код написан на С++.)
Program Program1;
Var
a:array [1..10] of integer;
i,min,max, Nmin, Nmax:integer;
//Процедура рекурсивной инвресии массива
procedure InvertMas(nac,kon:integer);
var
temp:integer;
begin
temp:=a[nac];
a[nac]:=a[kon];
a[kon]:=temp;
if nac+1<kon-1 then InvertMas(nac+1,kon-1);
end;
begin
randomize;
//Заполняем массив случайнами числами и выводим его на экран
writeln('Массив до инверсии:');
for i:=1 to 10 do
begin
a[i]:=random(100);
writeln('a['+inttostr(i)+']='+inttostr(a[i]));
end;
//Находим самый левый минимальный элемент в первой половине массива и номер этого элемента
Nmin:=1;
min:=a[Nmin];
for i:=1 to 5 do
if min>a[i] then
begin
min:=a[i];
Nmin:=i;
end;
//Находим самый правый максимальный элемент во второй половине массива и номер этого элемента
Nmax:=10;
max:=a[Nmax];
for i:=10 downto 6 do
if max<a[i] then
begin
max:=a[i];
Nmax:=i;
end;
writeln;
writeln('Инвертируем часть массива с '+inttostr(Nmin)+' по '+inttostr(Nmax)+' элемент');
//Инвертируем часть массива с Nmin по Nmax
invertmas(Nmin,Nmax);
//Выводим массив после инверсии на экран
writeln;
writeln('Массив после инверсии:');
for i:=1 to 10 do writeln('a['+inttostr(i)+']='+inttostr(a[i]));
end.