如何修复设置为检查哪些数字是素数的代码?

2024-09-19 12:36:48 发布

您现在位置:Python中文网/ 问答频道 /正文

代码如下:

def checkIfPrime (numberToCheck):
    for x in range(2, numberToCheck):
        if (numberToCheck%x == 0):
            return False
    return True

它几乎完美地工作。我看到的问题是,如果我检查零是否是素数,它会说“真”。就像这样:

>>> checkIfPrime(0)
True

但很明显,零不是质数!当我检查0是否是素数时,如何处理代码使其返回“False”


编辑:我现在看到我原来的代码有问题了。但是有人让我更新我的问题,以显示我是如何尝试检查我的参数checkIfPrime并使其失败的,这样当我检查数字0是否为prime时,程序将返回“False”。所以这是一个尝试:

def checkIfPrime (numberToCheck):
    for x in range(2, numberToCheck):
        if (numberToCheck%x == 0):
            return False
        if numberToCheck == 0:
            return False
    return True

Tags: 代码infalsetrue编辑for参数return
1条回答
网友
1楼 · 发布于 2024-09-19 12:36:48

只需先检查它(同时检查非整数和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

相关问题 更多 >