以下是代码:
def checkIfPrime (numberToCheck):
for x in range(2, numberToCheck):
if (numberToCheck%x == 0):
return False
return True
它几乎完美无缺。我看到的问题是,如果我检查零是否为素数,则表示" True。"像这样:
>>> checkIfPrime(0)
True
但显然,零不是素数!我能对代码做些什么,以便返回" False"当我检查0是否是素数时?
编辑:我现在用原始代码看到了问题。但是有人让我更新我的问题,以显示我是如何尝试并且失败的,检查我的参数checkIfPrime以使程序返回' False'当我检查数字零是否为素数时。所以这是尝试:def checkIfPrime (numberToCheck):
for x in range(2, numberToCheck):
if (numberToCheck%x == 0):
return False
if numberToCheck == 0:
return False
return True
答案 0 :(得分:2)
首先检查它(并检查非整数和1同时......):
from numbers import Integral
def checkIfPrime (numberToCheck):
if not isinstance(numberToCheck, Integral):
return False
if numberToCheck < 2:
return False
for x in range(2, numberToCheck):
if (numberToCheck%x == 0):
return False
return True