#python #python-3.x #math
#python #python-3.x #математика
Вопрос:
Я пытаюсь написать программу, в которой пользователь вводит число, и программа выдает вам корень и мощность этого числа. Однако я хочу, чтобы он печатал только самый низкий корень (например: для 64
того, чтобы он 4**3
не печатал 8**2
). Мне было интересно, может ли кто-нибудь помочь мне переставить циклы, чтобы сделать это.
n = int(input('enter a number = '))
found = False
power = 2
while power < 6 :
root = 0
while root ** power < n :
root = root 1
if root ** power == n :
print(n, 'is equal to', root, '**', power)
found = True
power = power 1
if not found:
print(n, 'does not have a root to some power in this range')
Комментарии:
1. Итак, что мешает вам остановить цикл после того, как вы найдете первый ответ?
2. В настоящее время выполняется итерация внешнего цикла
power
и продолжается итерация внутреннего циклаroot
. Попробуйте поменять их местами, чтобы внешний цикл повторялсяroot
, а внутренний цикл повторялсяpower
.3. Как вы определяете «самый низкий корень»? В вашем примере, почему 2 ** 6 не является «самым низким корнем»?
4. @PresidentJamesK. Полк Мощность не включает 6, поэтому программа не будет печатать 2 ** 6
5. @DYZ Первым ответом будет 8 ** 2, потому что моя программа сначала находит наименьшую мощность, но я пытаюсь найти только второй ответ, который имеет наименьший корень, но не обязательно наименьшую мощность