Основная функция, которая тебе нужна: function gcd(a,b : integer):integer; begin if (b mod a) = 0 then gcd := a else Result := gcd(b, a mod b) ; end; Для 3 чисел просто два раза вызываем предыдущую: function gcd3(a,b,c : integer):integer; begin gcd3 := gcd(a, gcd(b, c)); end; Если очень надо, можешь добавить дополнительно условие на то, что все числа больше нуля