Объявляем функцию 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
В цикле, кажется, так:
for I:=1 to N do
If (Mas[I] mod 2 = 0) and (Mas[I] mod 3 = 0) and (Mas[I+1] mod 2 = 0) and (Mas[I+1] mod 3 = 0)
then Sum:=Sum+1;
Перед этим, конечно, нужно заполнить массив. N - число элементов и обнулить сумму. Можно заполнить в том же цикле:
Sum:=0;
writeln ('Число элементов:');
readln(n);
writeln ('Числа:')
for I:=1 to N do begin
readln (Mas[I]);
If (Mas[I] mod 2 = 0) and (Mas[I] mod 3 = 0) and (Mas[I+1] mod 2 = 0) and (Mas[I+1] mod 3 = 0)
then Sum:=Sum+1;
end;
writeln ('Sum=',Sum);