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

Обновлено: 11.11.2025

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

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

Возведение чисел в степень до заданного предела на языке программирования Python
#
×
Формула возведения числа в степень и типы задач по программированию на возведение в степень до заданного предела

Ряд натуральных чисел возводится в одну и ту же степень (задача 1)

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

  1. Ввести показатель степени и присвоить его переменной p.
  2. Ввести число n.
  3. Пока натуральное число a возведенное в степень p меньше или равно n, то
    1. выводить на экран a в степени p и
    2. увеличивать a на 1, то есть переходить к следующему натуральному числу.

В языке программирования Python операция возведения в степень обозначается двумя знаками звездочки: **. Кроме этого, имеется встроенная функция pow. В примерах мы используем первый вариант: a**p. Его аналог выглядит так: pow(a, p).

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

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

print('\nПоследнее число, возведенное в степень:', a - 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('Предел: '))

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

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

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

Число возводится в ряд натуральных степеней (задача 2)

В отличие от предыдущей задачи здесь в цикле меняется показатель степени, а основание всегда остается одним и тем же.

a = int(input('Число (основание степени): '))
n = int(input('Предел: '))

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

print('\nПоследний показатель степени:', p - 1)
Число (основание степени): 4
Предел: 1200
4 16 64 256 1024
Последний показатель степени: 5