256=2 в 8-ой степени
8 бит на символ
8×30×70×5=84000 бит=10500 байт=10 килобайт
Имеет смысл воспользоваться методом "дихотомии" (деления пополам).
Если с днем рождения все понятно: в году максимум 366 дней и требуется определить нужный, то непонятно, как быть с загаданным учеником - их условно пронумеровать и спрашивать о номере?
Поэтому принимаем такое решение. Мы делим список учеников на два части (например, написав сведения о каждом на отдельной карточке и разложив эти карточки на две равные кучки по 560/2 = 280 человек в каждой. Затем задаем вопрос: загаданный ученик находится в первой кучке? По результатам ответа кучку, содержащую загаданного ученика, снова делим пополам. Процесс повторяем пока не останется одна карточка. Аналогично поступаем с датами рождения.
Тогда количество вопросов определится, как степень числа 2, дающая число, не меньшее количества учеников (дней рождения).
2⁹ < 560 < 2¹⁰, поэтому ученик будет угадан максимум за 10 вопросов.
2⁸ < 366 < 2⁹, поэтому день рождения будет угадан максимум за 9 вопросов.
В сумме потребуется задать не более 9+10 = 19 вопросов.
Конечно, можно придумать более продвинутую систему, когда на карточках учеников будут указаны одновременно и даты их рождения, тогда количество вопросов можно снизить.
1) Ане нравятся уроки математики и химии
2) Ане нравятся уроки химии и не нравятся - математики
3) Ане нравятся уроки математики и не нравятся - химии
4) Ане нравятся уроки математики или химии
5) Ане нравятся уроки математики или не химии
6) Ане не нравятся уроки математики или химии
7) Ане не нравятся уроки математики или химии
8) Ане не нравятся уроки математики и химии
9) Ане не нравятся уроки математики или нравятся уроки химии
Var x:integer;
begin
read (x);
if (x<=5) then writeln (power (x,6)) else writeln (x,'>5');
end.