Определите наименьшее значение переменной \(k,\) при котором программа, приведенная ниже, выведет ответ 17.
\[\begin{array}{|l|l|l|} \hline \text Python & \text{C++} \\ \hline def \; f(x): \; \; & \#include \; <iostream> \; \; \\ \quad \; \; return \; x*x*x \; \; & using \; namespace \; std; \; \\ def \; g(x): \; \; & int \; f(int \; x) \; \{ \; \; \\ \quad \; \; return \; x*x \; \; &\quad return \; x*x*x; \; \; \\ i=1 \; \; & \} \; \; \\ k=int(input()) \; \; & int \; g(int \; x) \; \{ \; \; \\ while \; f(i) < g(i) * k: \; \; &\quad return \; x*x; \; \; \\ \quad i+=1 \; \; &\} \; \; \\ print (i) \; \; &int \; main()\{ \; \; \\ \; \; &\quad int \; k, \; i=1; \; \; \\ \; \; &\quad cin >> k; \; \; \;\\ \; \; &\quad while(f(i) < g(i) * k) \; \; \\ \; \; &\quad \quad i++; \; \; \;\\ \; \; &\quad cout << i; \; \; \;\\ \; \; &\quad return \; 0; \; \; \\ \; \; &\} \; \; \\ \hline \end{array}\]
То, что программа выведет ответ 17, означает, что последнее значение переменной \(i,\) для которой условие цикла выполняется, равно 16 (когда для переменной \(i\)выполняется условие цикла, ее значение увеличивается на один, т.е. для выведенного после выхода из цикла значения \(i\) условие цикла выполнено не будет — последнее допустимое значение \(i\) после выполнения условия цикла было увеличено на один).
Это означает, что 16 раз было выполнено \(f(i) < g(i) \cdot k.\) Подставим в данное неравенство сами функции \(f(i)\) и \(g(i):\) \(i^3 < i^2 \cdot k.\) Преобразуем: \(i^2 \cdot (i- k) < 0.\) Знаем, что \(i^2 \geq 0,\) значит, при всех значениях \(i,\) кроме 0, неравенство равносильно \(i - k < 0,\) то есть \(k > i. \)
Для \(i\)= 16 полученное неравенство выполнено. Значит, \(k > 16.\)
Для \(i\)= 17 полученное неравенство уже выполнено быть не должно: иначе программа бы вывела ответ 18. Значит, \(k\) \(\geq\) 17.
Ищем наименьшее значение \(k.\) Значит, наш ответ — 17.
Ответ: 17