Если мы пронумеруем все числа, то на первом шагу останутся все числа с номерами 2к (к начинается с единицы), на втором 4к и т д. Значит, нам просто нужно узнать количество таких шагов. Всего чисел м-н. каждый раз мы удаляем половину. Значит, нужно посчитать логарифм от (м-н) по основанию 2. А ответом будет этот логарифм, округленный в меньшую строну (ну или в большую, там смотреть надо)
Var s,p:string; k,i:integer;
begin
readln(s);
p:='.,;:!?';
k:=0;
for i:=1 to length(s) do
if pos(s[i],p)>0 then k:=k+1;
writeln('k = ',k);
end.
Пример:
Hi, guys!
k = 2
Одна яхта должна отплыть назад ,после чего вторая пройдёт через устье
Аккордеонов-1) саксофон 2)бас-гитара
Баянов-1)корнет 2)ритм-секция
Тальянкин-1)банджо 2)труба