素数python for循环

新手上路,请多包涵

问题:

一个以正整数 n 作为输入的程序,如果 n 是质数则返回 True,否则返回 False。

我的答案:

 n = int(input("Enter a number: "))
for i in range(2,n):
    if n%i == 0:
        print(False)
print(True)

当我输入一个质数时它起作用,但当我输入一个非质数时它不起作用。

例子:

 >>>
Enter a number: 12
False
False
False
False
True
>>>

请帮忙!

原文由 James Ocean 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

您可以 break 并使用 else

 n = int(input("Enter a number: "))
for i in range(2, n):
    if n % i == 0:
        print(False)
        break
else:
    print(True)

True 只有在循环完全完成时才会打印,即没有 n % i 等于 0。

原文由 Padraic Cunningham 发布,翻译遵循 CC BY-SA 3.0 许可协议

您的代码 总是 在最后打印 True ,并在此之前打印一些 False 。相反,您应该有一个变量( isPrime ?),它被初始化为 True 并设置为 False 当你发现它时可以除掉它。然后在最后打印该变量。

原文由 Scott Hunter 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题