7
Объяснение:
k = 1 dat[1] = 12 12 > 12 (НЕТ) m = 0
k = 2 dat[2] = 15 15 > 12 (ДА) m = 1
k = 3 dat[3] = 17 17 > 12 (ДА) m = 2
k = 4 dat[4] = 15 15 > 12 (ДА) m = 3
k = 5 dat[5] = 14 14 > 12 (ДА) m = 4
k = 6 dat[6] = 12 12 > 12 (НЕТ) m = 4
k = 7 dat[7] = 10 10 > 12 (НЕТ) m = 4
k = 8 dat[8] = 13 13 > 12 (ДА) m = 5
k = 9 dat[9] = 14 14 > 12 (ДА) m = 6
k = 10 dat[10] = 15 15 > 12 (ДА) m = 7
Объявляем функцию gcd, принимающую два целочисленных параметра и возвращающую их наибольший общий делитель. Здесь это вычисляется при алгоритма Евклида.
Затем для удобства определяем ещё одну функцию gcd3, которая принимает уже три аргумента и, используя указанную в условии формулу и описанную выше функцию gcd, вычисляет НОД от трёх чисел.
В основной части программы просто три числа считываются с клавиатуры и выводится ответ.
Код (PascalABC.NET v3.6.2316):
function gcd(a, b: integer): integer;
begin
while a * b <> 0 do
(a, b) := (b, a mod b);
Result := a + b
end;
function gcd3(a, b, c: integer) := gcd(gcd(a, b), c);
begin
var (a, b, c) := ReadInteger3;
print(gcd3(a, b, c))
end.
Пример ввода:
10 40 20
Пример вывода:
10
512*64 = 32 768 - символов в алфавите.