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