如何解决我必须在 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 举报,一经查实,本站将立刻删除。