Python素数查找

Python素数查找,python,python-3.x,Python,Python 3.x,您好,15不是质数,但它输出它是质数,错误在哪里,当使用for循环开始循环时,整数的第一个实例i将为i=2,因此15%2显然不等于0,因此它移动到else逻辑条件并打印素数,而不继续,这导致它打印素数,然后退出程序 以下是正确的程序,以防您想了解一种方法: def isPrime(x): for i in range(2,x): if x%i==0: return 'not prime' break else:

您好,15不是质数,但它输出它是质数,错误在哪里,当使用for循环开始循环时,整数的第一个实例i将为i=2,因此15%2显然不等于0,因此它移动到else逻辑条件并打印素数,而不继续,这导致它打印素数,然后退出程序

以下是正确的程序,以防您想了解一种方法:

def isPrime(x):
    for i in range(2,x):
       if x%i==0:
          return 'not prime'
          break
       else:
          return 'prime'
print(isPrime(15))
def isPrime(n):
#角落案例
如果(n
  • “else”的位置错误,应该在for循环结束时放置它

您的
Else
应退出循环,否则
i
将仅等于2。
代码应该是这样的:

def isPrime(x):
    if x in [2,3]  :
        return "prime"
    for i in range(2,x): 
        if x%i==0:
            print(i)
            return 'not prime'
    return "prime"
print(isPrime(15))


else
子句上的缩进错误,它应该与
匹配。您也不需要
中断
def isPrime(x):
    if x in [2,3]  :
        return "prime"
    for i in range(2,x): 
        if x%i==0:
            print(i)
            return 'not prime'
    return "prime"
print(isPrime(15))

def isPrime(x):
    for i in range(2,x):
       if x%i==0:
          return 'not prime'
          break
     else:
        return 'prime'
print(isPrime(15))