Возведение чисел в степени до заданного предела
Обновлено: 11.11.2025
Вывести степени натуральных чисел, не превосходящие числа n. Пользователь задает 1) показатель степени и число n или 2) основание степени и число n.
Решение задачи на языке программирования Python
Ряд натуральных чисел возводится в одну и ту же степень (задача 1)
Алгоритм решения задачи:
- Ввести показатель степени и присвоить его переменной p.
- Ввести число n.
- Пока натуральное число a возведенное в степень p меньше или равно n, то
- выводить на экран a в степени p и
- увеличивать 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