微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我必须在 python 中编写一个程序来检查 3 ,11 是素数而 9 不是

如何解决我必须在 python 中编写一个程序来检查 3 ,11 是素数而 9 不是

我为此编写了这段代码,但它也将 9 作为质数返回。 当我将 9 作为输入时,我的输出低于输出输入一个数字:9 它是一个质数 不是质数

num = int(input("enter a number:"))

for i in range(2,num):
    if num % i == 0:
        print("not a prime number")
    else:
        print("it is a prime number")

但这表明 9 也是素数

解决方法

您可以在 if 条件中只 break 循环,并将 else 部分拉出循环,它会按照您的要求运行。

在循环内部,如果这个数是可整除的,则说明它不是素数,循环立即中断,但如果一直到else部分的for循环,则说明该数是素数;这个 else 部分只有在循环没有被手动破坏时才会执行

num = int(input("enter a number:"))

for i in range(2,num):
    if num % i == 0:
        print("not a prime number")
        break
else:
    print("it is a prime number")

PS:您甚至不需要检查到 n,您可以检查到 √n,更多信息请访问 Wikipedia Primality test

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。