Напишите в ответе наименьшее значение входной переменной k, при котором программа выдаёт ответ 21. для вашего удобства программа на пяти языках программирования. var k, i : longint; function f(n: longint): longint; begin f : = n * n * n; end; function g(n: longint): longint; begin g : = n*n; end; begin readln(k); i : = 1; while f(i) < = k*g(i) do i : = i+1; writeln(i) end.
f(n)=n³; g(n)=n²
В основной программе имеется цикл с предусловием, который выполняется до тех пор, пока записанное после while логическое выражение (в данном случает отношение) истинно. Делаем подстановку.
f(i) ≤ k × g(i); i³ ≤ k × i² ⇒i ≤ k
Первоначально i=1, а в цикле i наращивается на 1. Поскольку цикл прекратит выполнение при i > k, то для i=21 получаем k=20.
функция g преобразует число n в квадрат числа n
рассмотрим цикл:
к переменной i будет прибавляться 1, только если i^3 <= k * i^2, то есть
цикл действует только в случае, когда k >= i
выйти из цикла мы должны со значением i = 21
это может быть в одном случае:
k = 20, i = 20, тогда выполним цикл и снова в него не войдем, поскольку 21^3 > 20 * 21^2
ответ: k = 20