Это от упражнений пальцев 3.1 во Введении к вычислениям и программированию с использованием Python.Вложенные петли в Python 2
Написать программу, которая запрашивает пользователя ввести целое число и печатает два целых числа,
root
иpwr
, таким образом, что0 < pwr < 6
иroot**pwr
равен целому числу, введенному введенный. Если такой пары целых чисел не существует, она должна напечатать сообщение об этом.
Я получил чертовски близкий, частично благодаря некоторым предложениям в переполнении стека. Но никто не прошел довольно далеко, частично потому, что целью упражнения является использование вложенных циклов While, а не циклов For или чего-либо еще более сложного. Это упражнение является исчерпывающим перечислением.
Я действительно очень близко. Вот то, что я до сих пор:
num = int(raw_input('Enter a positive integer: '))
power = 0
root = 0
while power < 6:
if root ** power == num:
break
power += 1
root= 0
while root ** power < num:
root += 1
if root**power == num:
print('Root = ' + str(root) + ' and power = ' + str(power))
else:
print('No pair of integers exist such that one has an exponent that is between 1 and 6')
Там только две проблемы здесь: я должен выполнить проверку, чтобы увидеть, если корень и мощности равный пользовательский ввод и что чувствует себя ненужным. Интересно, как сделать это чище.
Также, когда пользователь вводит 1
для ввода, программные выходы Root 0 and Power 0
, которые находятся за пределами параметров упражнения.
'0
Leonardo