我正在尝试创建一个函数来根据模运算的结果检查一个数是否为素数;到目前为止一切顺利,但由于某种原因,它似乎将 9 归类为质数。
def is_prime(x):
if x <= 1: return False
elif x == 2 or x == 3: return True
else:
for n in range(2, x - 1):
if x % n == 0:
return False
else:
return True
使用该函数,如果您以
is_prime(9)
运行它,它会返回一个 True
值,尽管如果您在解释器上键入 9 % 3
,它会输出 0
.
我想我犯了一个错误,但我没有看到,你能帮帮我吗?
这是当您尝试在解释器中运行它时发生的情况:
Python 3.11.2 (tags/v3.11.2:878ead1, Feb 7 2023, 16:38:35) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> def is_prime(x):
... for n in range(2, x-1):
... if x % n == 0: return False
... else: return True
...
>>> is_prime(9)
True
但从技术上讲,
n = 3
和x = 9
用作x % n
应该输出0
对吗?