gpt4 book ai didi

python - 为什么我的质数测试仪中的模数条件不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 09:09:49 25 4
gpt4 key购买 nike

我正在尝试(但失败了)编写一个简单的函数来检查数字是否为质数。我遇到的问题是,当我遇到 if 语句时,无论输入如何,它似乎都在做同样的事情。这是我的代码:

def is_prime(x):
if x >= 2:
for i in range(2,x):
if x % i != 0: #if x / i remainder is anything other than 0
print "1"
break
else:
print "ok"
else:
print "2"
else: print "3"

is_prime(13)

带有注释的那一行是我确定的问题所在。无论我使用什么整数作为参数,它都会打印“1”。很抱歉这个问题可能很愚蠢,我根本不是一个有经验的程序员。

最佳答案

您的代码实际上非常接近于发挥作用。你只是在你的条件中有一个逻辑错误。

您可以对 primality test 进行一些优化就像只检查给定数字的平方根。

def is_prime(x):
if x >= 2:
for i in range(2,x):
if x % i == 0: # <----- You need to be checking if it IS evenly
print "not prime" # divisible and break if so since it means
break # the number cannot be prime
else:
print "ok"
else:
print "prime"
else:
print "not prime"

关于python - 为什么我的质数测试仪中的模数条件不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16629443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com