带有简单 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
我正在尝试解决一个问题,我必须使用 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