Возведение чисел в степень до заданного предела

Вывести степени натуральных чисел, не превосходящие данного числа n. Пользователь задает показатель степени и число n.

Решение задачи на языке программирования Python

Алгоритм решения задачи:

  1. Ввести показатель степени и присвоить его переменной p.
  2. Ввести число n.
  3. Пока натуральное число i возведенное в степень p меньше или равно n, то
    1. выводить на экран i в степени p и
    2. увеличивать i на 1, то есть переходить к следующему натуральному числу.
p = int(input("Показатель степени: "))
n = int(input("Предел: "))

i = 1
while i ** p <= n:
    print(i ** p, end=' ')
    i += 1

print("\nПоследнее число,"
      " возведенное в степень:", i - 1)

Примеры выполнения кода:

Показатель степени: 2
Максимальный предел степени: 100
1 4 9 16 25 36 49 64 81 100
Последнее число, возведенное в степень: 10
Показатель степени: 3
Максимальный предел степени: 555
1 8 27 64 125 216 343 512
Последнее число, возведенное в степень: 8

Приведенный выше код хотя имеет краткий вид, однако в нем возведение в степень выполняется два раза за одну итерацию цикла: сначала в условии, потом в теле. Если подобные вычисления приводят к лишним затратам процессорных мощностей, то такой способ решения задачи не является оптимальным.

Поскольку степень числа нам требуется дважды (для сравнения с n и для вывода на экран), придется ее сохранять при первом вычислении в переменной.

p = int(input("Показатель степени: "))
n = int(input("Предел: "))

i = e = 1
while e <= n:
    print(e, end=' ')
    i += 1
    e = i ** p

print("\nПоследнее число, возведенное в степень:", i - 1)

Здесь на каждой итерации цикла значение e вычисляется один раз. Первое значение степени всегда будет единицей при любом показателе. Поэтому можно не возводить единицу в степень, а просто вывести ее на экран.


Решение задач на Python




Все разделы сайта