这是来自 Python 计算和编程简介中的手指练习 3.1。
编写一个程序,要求用户输入一个整数并打印两个整数
root
和pwr
,使得0 < pwr < 6
和root**pwr
等于输入的整数。如果不存在这样的整数对,它应该打印一条消息。
我非常接近,部分归功于 Stack Overflow 中的一些建议。但是没有人能做到这一点,部分原因是练习的重点是使用嵌套的 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')
这里只有两个问题:我必须运行检查以查看 root 和 power 是否等于用户输入,这感觉没有必要。想知道如何使那个更清洁。
此外,当用户输入1
输入时,程序会输出Root 0 and Power 0
超出练习参数的内容。