Program Pr1;
uses crt;
var fl1,fl2:text;
i,n,v,a,b:integer;
Begin
clrscr;
assign(fl1,'input.txt');
assign(fl2,'output.txt');
reset(fl1);
readln(fl1,n);
v:=0;
for i:=1 to 1000000 do begin
if i>=10 then begin
a:=i div 10;
b:=i mod 10;
if (a mod 2<>0) and (b mod 2<>0) then v:=v{?} 1; {здесь либо пропущен знак либо v1-новая переменная не перечисленная в списке описания переменных}
end
else if i mod 2<>0 then v:=v 1;{здесь тоже самое}
if v=n then break;
end;
rewrite(fl2);
writeln(fl2,v);
close(fl1);
close(fl2);
end.
Общий расчёт делается через двоичный логарифм (его можно заменить делением двух десятичных или натуральных логарифмов) и потом округление до целого числа с избытком (т.е. округляем всегда вверх) обозначается вот такими палочками с выступами сверху ⌈ ⌉ .
Единственный нюанс в том, что это формула для N значений. А тут спрашивается, сколько разрядов нужно для хранения числа 134.
Я так понимаю, что при этом количество значений N = 134 + 1 = 135 (эта единица- учёт того, что есть ещё и нулевое значение, по крайней мере в такой форме хранения целых числел- в виде двоичного числа).
Ну, либо можно использовать таблицу степеней двойки, и подобрать по ней такую степень, значение которой равно или чуть больше вашего числа. Опять же, здесь N- это количество значений, которые можно хранить в двоичных разрядов (т.е. тут тоже надо считать и нулевое значение). Например:
1 2
2 4
3 8
4 16
5 32
6 64
7 128 <-- это значение ещё не достаточное (меньше, чем 135)
8 256 <-- а вот это значение минимально необходимое (8 разрядов)
9 512
10 1024
11 2048
12 4096
13 8192
14 16384
15 32768
16 65536