简单质数函数的问题

问题描述 投票:0回答:0

我正在尝试创建一个函数来根据模运算的结果检查一个数是否为素数;到目前为止一切顺利,但由于某种原因,它似乎将 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
对吗?

python primes
© www.soinside.com 2019 - 2024. All rights reserved.