带有简单 for 循环的素数不起作用?

Prime Number with Simple for loop not working?

我正在尝试解决一个问题,我必须使用 for 循环来解决数字是否为质数的问题。似乎只有将数字除以 2 才能确定它是否为质数。如果我的代码可以被 3 及以上整除,我的代码就不会执行...

这是我的代码:

def isPrime(num):
  for i in range (2,num):
    if (num%i) !=0:
      return True
    else:
      return False


isPrime(15)

我知道 15 不是质数,但它返回 True 而不是 False。谁能帮忙?谢谢

OP 的算法 总是在第一次迭代时退出。

相反,减少循环次数,并且仅在找到除数时才退出循环。还要考虑小于 2 的值。

def isPrime(num):
  for i in range [2,isqrt(num)]:
    if (num%i == 0) return False
  
  if (num < 2) return False
  return True