所以我只想检查我的功能有什么问题。它可以很好地给出质数,但是当我输入像 4 这样的数字时,它会打印“4 不是质数”然后“4 是质数”。 似乎是什么错误? (我知道这很难过,但我花了 8 个小时做这个(初学者))。
def isprime(n):
if n == 1:
print ("1 is not prime.")
if n == 2:
print ("2 is a prime number.")
for x in range (2, n):
if n%x == 0:
print (n, "is not prime.")
if n%x != 0:
print (n, "is a prime number.")
最佳答案
你的算法是错误的,你需要在检测到一个因子后中断,如果没有因子则打印一个素数。
这是更正后的版本:
def isprime(n):
if n == 1:
print ("1 is not prime.")
return
if n == 2:
print ("2 is a prime number.")
return
for x in range (2, n):
if n%x == 0:
print (n, "is not prime.")
break
else:
print (n, "is a prime number.")
关于python - 这个 python 质数函数有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18861352/