Ответ:
Решение:
Программа ищет натуральное число k, такое что k*k*k не превышает b, а k*k не меньше a. В результате выводятся все такие k.
Данные из результата (5, 6, 7, 8, 9) — это числа k, которые удовлетворяют условиям.
Для того чтобы вывести числа от 5 до 9, нужно выполнить следующие условия:
k*k*k <= b. Минимальное значениеkравно 5, значит5*5*5 = 125. Следовательно,bдолжно быть не меньше 125.k*k >= a. Максимальное значениеk, которое выводится, равно 9. Дляk=9,k*k = 81. Значит,aдолжно быть меньше или равно 81.- При этом
kдолжно начинаться с 5, значит дляk=4условиеk*k >= aне должно выполняться, то есть4*4 = 16должно быть меньшеa.
Таким образом, наименьшие натуральные значения a и b таковы:
aдолжно быть больше 16 (a > 16). Наименьшее натуральное значениеa— 17.bдолжно быть больше или равно 125 (b ≥ 125). Наименьшее натуральное значениеb— 125.
Проверим:
- Если
a=17иb=125: k=1:1*1*1=1 <= 125.1*1=1 < 17.k=2:2*2*2=8 <= 125.2*2=4 < 17.k=3:3*3*3=27 <= 125.3*3=9 < 17.k=4:4*4*4=64 <= 125.4*4=16 < 17.k=5:5*5*5=125 <= 125.5*5=25 >= 17. Печатаем 5.k=6:6*6*6=216 > 125. Цикл завершается.
Это не соответствует результату. Нужно, чтобы цикл продолжался до тех пор, пока k*k*k <= b, и выводились все k, где k*k >= a.
Чтобы получить вывод от 5 до 9, нам нужно:
k*k*k <= bдляk=9, ноk*k*k > bдляk=10.k*k >= aдляk=5, ноk*k < aдляk=4.
Расчеты:
- Для
k=9:9*9*9 = 729. Значит,bдолжно быть не меньше 729. - Для
k=10:10*10*10 = 1000. Значит,bможет быть меньше 1000, чтобы цикл закончился. - Для
k=5:5*5 = 25. Значит,aдолжно быть не больше 25. - Для
k=4:4*4 = 16. Значит,aдолжно быть больше 16.
Наименьшие натуральные значения:
a:17(потому что16 < a)b:729(потому что729 <= b)
Проверим с a = 17 и b = 729:
k=1..4:k*k < 17, ничего не печатается.k=5:5*5*5=125 <= 729.5*5=25 >= 17. Печатаем 5.k=6:6*6*6=216 <= 729.6*6=36 >= 17. Печатаем 6.k=7:7*7*7=343 <= 729.7*7=49 >= 17. Печатаем 7.k=8:8*8*8=512 <= 729.8*8=64 >= 17. Печатаем 8.k=9:9*9*9=729 <= 729.9*9=81 >= 17. Печатаем 9.k=10:10*10*10=1000 > 729. Цикл завершается.
Ответ: a = 17, b = 729
