1)3³=27
2)27³=19683
3)19683³=7625597484987
4)7625597484987³=с калькулятора=4.43426488e38
Но я думаю не обязательно считать,просто алгоритм
<span>System.Math.Sin(от чего)</span>
Var
a,b,d,K,kp:integer;
P:boolean;
Begin
kp:=0;
ReadLn(a,b);
if (a = 1)or(a = 2) then
Begin
kp:=2;
Write(2,' ',3)
end
else if a = 3 then
Begin
kp:=1;
Write(3);
End;
if a < 5 then a:=5
else if a mod 2 = 0 then a:=a+1;
While a<=b do
Begin
K:=Trunc(Sqrt(A));
d:=3;
P:=true;
While d <= K do
Begin
if A mod d = 0 then P:=false;
d:=d+2
End;
if P then
Begin
kp:=kp+1;
Write(' ',a);
End;
a:=a+2
End;
if kp = 0 then Write(0)
End.
При каждом полученном ответе интервал делится на 2 половины, в одной из которой искомое число. Таким образом максимальное число раз, которым мы можем разделить интервал от 1 до 8 = log2(8) = 3. Чтобы точно угадать число требуется еще 1 попытка.
Ответ: 4, log2(n) + 1 для общего случая