Непонятно, что за "надписи".
Предположим, что
1. "бабушка попросила"
2. "взяла лукошко"
3. "подошла к кусту"
4. "сорвала ягоду"
5. "сварили варенье"
тогда логика задачи будет следующей
бабушка попросила
Если Маша согласилась тогда
взяла лукошко
подошла к кусту
Если куст с ягодами Тогда
Пока (на кусте есть ягоды) и (лукошко пустое) Цикл
сорвала ягоду
КонецЦикла
КонецЕсли
сварили варенье
КонецЕсли
В принципе, если несколько кустов, нужен цикл обхода по кустам пока не наполнится лукошко.
Объявляем функцию 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
1598
Объяснение:
Рассмотрим данное выражение:
Подобное выражение - развернутая форма записи числа.
Здесь, например,
степени выглядит в троичной системе счисления как 1 и четыре тысячи нулей после единицы, т.е. что-то вроде
. Аналогично
в троичной системе счисления - это 1 и 800 нулей и так далее. Понятно, что, если единицы стоят в разных разрядах, выполнить сложение в любой системе счисления не составит труда, ведь
. Собственно, говоря, очевидно и, что
, но не забываем, что
. Т.е. сначала выполним сложение. Еще раз замечу, что сложение выполняется в троичной системе счисления. Так, пока из 4000 нулей пропало 2, т.е. на данный момент осталось 3998 нулей. Но это еще не все. У нас есть вычитание. Вычитаем, понятно, по такому же принципу, как в десятичной системе счисления. Например, для десятичной системы счисления верно, что
. Видим, что старшая единица пропадает, а нули меняются на 9, т.е. на основание системы счисления минус 1 (у нас 10-1=9). То же и в троичной системе. Например,
. Соответственно, в итоге в троичной системе счисления число примет вид:
, где сначала идет 2400 двоек (4000-1600), затем идет 799 нулей, затем единица, затем 799 нулей и в конце 2. ответим теперь на вопрос задачи: в троичной записи данного числа содержится 1598 нулей.
Задача решена!