Если я правильно понял, под "количестовом" подразумевался объем сообщения в символах. 1/16 Мб = 1024576 байт / 16 = 65536 байт. 4 бит хватит для записи всех символов 16-значного алфавита, так что 65536*8 = 524288 (количество бит в сообщении), 524288/4 = 131072 4-битовых символа.
Решение задачи:
«Переводим» условие задачи на язык алгебры логики ;-)
1. Определяемся с системой обозначений для логических высказываний:
А – Алёша Попович;
М – Микула Селянинович;
Д – Добрыня Никитич.
Илья Муромец первым перед царём-батюшкой слово держал, но про него никто ничего не сказал :-)
«Это всё Алёша Попович, царь-батюшка» – это Алёша Попович«То был Микула Селянинович» – это МикулаСелянинович«Не прав Алёша, не я то» – это не Микула Селянинович«И не я, царь-батюшка» – это не Добрыня Никитич
Сведём выше сказанное в единое целое (логическая связка «И»):

Учитывая слова Бабы-Яги:
«А прав-то лишь один из богатырей, видела я всю битву своими глазами»:
Правду сказал Илья МуромецПравду сказал Алёша ПоповичПравду сказал Микула СеляниновичПравду сказал Добрыня Никитич
Лирическое отступление ;-) алгебра логики
∧ – знак логического умножения (конъюнкция) – соединение высказываний с помощью союза «И» (AND). X∧Y; X&Y; X·Y или XY. Где: « ∧ », « & », « · » – знаки, обозначающие операцию логического умножения. Все варианты записи равнозначны. В решении нашей задачи для облегчения восприятия итоговой формулы я использую вариант записи логического умножения «XY».
∨ – знак логического сложения (дизъюнкция) – соединение высказываний с помощью союза «ИЛИ» (OR). X∨Y; X + Y. Где: « ∨ », « + » – знаки, обозначающие операцию логического сложения. Оба варианта записи равнозначны. В решении нашей задачи я использую вариант записи логического сложения «X + Y».
Некоторые операции и законы алгебры логики, необходимые для решения нашей задачи:
закон двойного отрицания:

закон идемпотентности для конъюнкции:

операции с переменной и её инверсией:

2. Конструируем итоговую логическую формулу, описывающую логические связи между всеми высказываниями условия задачи. По условию нашей задачи прав только один из богатырей (логическая связка «ИЛИ»):

3. Определяем значения истинности логической формулы. Упрощаем формулу. Используем операции и законы алгебры логики и учитываем, что по условию нашей задачи: А ∧ М = 0; А ∧ Д = 0; М ∧ Д = 0

Ответ: Змея Горыныча победил Добрыня Никитич!
Ввод данных
Для ввода исходных данных чаще всего используется процедура ReadLn:
ReadLn(A1,A2,...AK);
Процедура производит чтение К значений исходных данных и присваивает эти значения переменным А1, А2, ..., АК.
При вводе исходных данных происходит преобразование из внешней формы представления во внутреннюю, определяемую типом переменных. Переменные, образующие список ввода, могут принадлежать либо к целому, либо к действительному, либо к символьному типам. Чтение исходных данных логического типа в языке Паскаль недопустимо.
Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter.
Не допускается разделение вводимых чисел запятыми!
Вывод данных
Для вывода результатов работы программы на экран используются процедуры:
Write(A1,A2,...AK);
WriteLn(A1,A2,...AK);
Первый из этих операторов производит вывод значений переменных А1, А2,...,АК в строку экрана. Второй оператор, в отличие от первого, не только производит вывод данных на экран, но и производит переход к началу следующей экранной строки. Если процедура writeln используется без параметров, то она просто производит пропуск строки и переход к началу следующей строки.
Переменные, составляющие список вывода, могут относиться к целому, действительному, символьному или булевскому типам. В качестве элемента списка вывода кроме имен переменных могут использоваться выражения и строки.
Форма представления значений в поле вывода соответствует типу переменных и выражений: величины целого типа выводятся как целые десятичные числа, действительного типа - как действительные десятичные числа с десятичным порядком, символьного типа и строки - в виде символов, логического типа - в виде логических констант TRUE и FALSE.
Оператор вывода позволяет задать ширину поля вывода для каждого элемента списка вывода. В этом случае элемент списка вывода имеет вид А:К, где А - выражение или строка, К - выражение либо константа целого типа. Если выводимое значение занимает в поле вывода меньше позиций, чем К, то перед этим значением располагаются пробелы. Если выводимое значение не помещается в ширину поля К, то для этого значения будет отведено необходимое количество позиций.
Для величин действительного типа элемент списка вывода может иметь вид А:К:М, где А - переменная или выражение действительного типа, К - ширина поля вывода, М - число цифр дробной части выводимого значения. К и М - выражения или константы целого типа. В этом случае действительные значения выводятся в форме десятичного числа с фиксированной точкой.
Пример записи операторов вывода:
var rA, rB: Real;
iP,iQ:Integer;
bR, bS: Boolean;
chT, chV, chU, chW: Char;
begin
. . .
WriteLn(rA, rB:10:2);
WriteLn(iP, iQ:8);
WriteLn(bR, bS:8);
WriteLn(chT, chV, chU, chW);
end.
Код Pascal:
Var
P:byte;
Begin
Write('Введите рост человека: ');ReadLn(P);
if P > 180 then WriteLn('Высокий')
else WriteLn('Не очень высокий')
End.
Пример работы программы:
Введите рост человека: 150
Не очень высокий
Ответ:
- Ответ: 360000 байт или 351,5625 килобайт.
Объяснение:
1 символ = 8 бит = 1 байт
150*40*60=360000 (символов/байт) это ответ и есть, но можно для удобства перевести в килобайты 1 килобайт = 1024 байт
360000/1024=351,5625