Давай разбираться. Если бы квартира в доме была 1 = 2^0, то информация, что Вася живет в этой квартире, имела бы 0 информации. Потому что, если мы заранее знаем, что Вася живет в этом доме, то сразу ясно, что в этой единственной квартире. Дополнительное сообщение об этом не несет никакой информации вообще. Если квартир 2 = 2^1, то сообщение несет 1 бит информации. 1 квартира = 0, 2 квартира = 1. Если квартир 3, 2<3<4, то есть 2^1<3<2^2, то будет 2 бита. 1кв = 00, 2кв = 01, 3кв = 10. Одного бита не хватает. И так далее. Сколько квартир в доме (в смысле - 2 в какой степени), столько бит и будет. 128 < 150 < 256, то есть 2^7 < 150 < 2^8, поэтому уточнение номера квартиры дает 8 бит информации.
Из условия видим, что для кодировки всего множества квартир в доме 7 бит достаточно, а 6 бит - мало. Значит количество квартир в доме Васи (х) должно находиться в промежутке: 2^6<x<=2^7 =>Квартир в доме Васи больше 64 но меньше или равно 128.Более точного ответа по данному условию дать нельзя.
Var a,b:integer; Begin writeln('Не вводите 44'); while b<>44 do Begin Writeln('Число, пожалуйста'); a:=a+b; readln(b); End; Write(a,' - это сумма тех чисел, которые вы вводили'); End.