所以我读了很多关于这类问题的解决方案,但它们似乎都太复杂了,或者我在其中找不到任何有用的解决方案。
我已经编写了第一部分,其中我必须要求输入并验证它是一个整数,但我不知道如何编写第二部分的代码。效率在这里不是必要的,但我认为如果我从一开始就学会最有效的方法会更好。从我读到的内容来看,使用输入的根并检查除数是实现这一目标的方法,但正如我所说,我不知道如何真正编写代码并将其集成到我现有的代码中。
while True:
x = str(input("Please enter an integer: "))
try:
x = int(x)
except ValueError:
print("Please enter a valid integer: ")
continue
break
非常感谢您的帮助!
最好在问题中编辑多行代码,而不是发布评论,因为这样你就不局限于一行了。
您的代码似乎是:
def is_prime2(n):
if n == 2 or n == 3:
return True
#endif
if n % 2 == 0 or n < 2:
return False
#endif
for i in range(3, int(n**0.5)+1, 2):
if n % i == 0:
return False
#endif
#endfor
return True
#enddef
print(n)
我添加了一些评论,以表明我认为各种发言的结尾。我可能把缩进从一行转换错了。
除了print(n)
(它不是函数定义的一部分或在return
之后(之外,这似乎可以正常工作。对于n
的非常大的值,它将太慢,尽管对于较小的值和测试它将是好的。对于非常大的值,请查看埃拉托斯尼筛。
编写一个isPrime(n)
函数,如果n是素数,则返回true
,否则返回false
。然后测试从2到输入整数的所有数字,看看它们是否是素数。
我们将帮助您改进代码,但您必须先编写代码。