Как мне напечатать самый низкий корень?

#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, потому что моя программа сначала находит наименьшую мощность, но я пытаюсь найти только второй ответ, который имеет наименьший корень, но не обязательно наименьшую мощность