﻿function GCD_2(a, b: integer): integer;
begin
  if b = 0 then result := a
  else result := GCD_2(b, a mod b)
end;

function GCD_N(a: array of integer; i: integer): integer;
begin
  if i = 1 then
    Result := GCD_2(a[0], a[1])
  else
    Result := GCD_2(GCD_N(a, i - 1), a[i])
end;

begin
  var N := ReadInteger('N:');
  Writeln($'Введите {N} натуральных чисел:');
  var a := ReadArrInteger(N);
  
  var s := '';
  for var i := 0 to a.High do
    if i <> a.High then
      s += a[i] + ', '
    else s += a[i];
  
  WriteFormat('GCD_{2}({0}) = {1}', s, GCD_N(a, a.High), N);
end.

