Переведем 31 в двоичную=11111-это число R Сказано,что оно на два разряда больше,чем исходное N Т.е. N=111|11=111 Прогоним 111 по данному алгоритму: 1)Число единиц не четно,значит добавляем 0>>1110 2)3/2=1,значит добавляем 1>>11101 Видим,что 11101<11111,значит исходное N увеличиваем на 1,получим 1000 Прогоняем по алгоритму 1000: 1)Число единиц нечетно,добавляем 0>>10000 2)Остаток от деления числа единиц=1,добавляем 1>>100001 Мы получили число 100001-это R.Оно больше,чем 11111. Переведем его(100001) в десятичную систему счисления=33 ответ:33
begin
readln(a);
n:=0;
While a>0 do
Begin
a:=a div 10;
n:=n+1;
end;
writeln(n);
end.