我编写了以下代码来检查一个数是否为质数。虽然有更有效的方法来做到这一点,但我注意到虽然这适用于最大的素数,但它对素数的每一个乘积都无效。因此,虽然它正确地将 13 和 17 识别为质数,但它也将 91 (13 × 7) 识别为质数。有什么想法吗?
def checkifprime(numtocheck):
for x in range(2,numtocheck):
if(numtocheck % x == 0):
return False
return True
answer = checkifprime(91)
print (answer)
请您参考如下方法:
return True 缩进太多;它在循环内并导致函数在第一次迭代时退出,因此您的函数实际上只检查数字是否为奇数。
def checkifprime(numtocheck):
for x in range(2, numtocheck):
if numtocheck % x == 0:
return False
return True
