Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 素数计算器-以7和9结尾的数字显示素数,即使它们不是素数-这需要是一个布尔函数_Python - Fatal编程技术网

Python 素数计算器-以7和9结尾的数字显示素数,即使它们不是素数-这需要是一个布尔函数

Python 素数计算器-以7和9结尾的数字显示素数,即使它们不是素数-这需要是一个布尔函数,python,Python,您的代码检查数字是偶数还是奇数。理想情况下,如果数字%p中的任何一个等于0,则需要返回True 使用: 注意:如果数字不是质数,此函数将返回True。这只是检查范围内的第一个数字,它命中的是checkPrime,它在第一个循环中以任何方式命中return,因此它基本上是检查数字是否可以被2整除 def checkPrime(number): return any(number % p == 0 for p in range(2, number)) 另外,如果数字%p是0,

您的代码检查数字是偶数还是奇数。理想情况下,如果数字%p中的任何一个等于0,则需要返回True

使用:


注意:如果数字不是质数,此函数将返回True。

这只是检查范围内的第一个数字,它命中的是checkPrime,它在第一个循环中以任何方式命中return,因此它基本上是检查数字是否可以被2整除

def checkPrime(number):       
    return any(number % p == 0 for p in range(2, number))

另外,如果数字%p是0,那么这个数字是完全可除的,因此不是素数,因此应该返回False。再加一条注释,这段代码对于大素数来说效率很低。除了作为一个非常低效的循环之外,您还将不必要地检查多个数字,例如,如果一个数字不能被2整除,它也不能被6整除,但此代码将同时检查这两个数字。这将只返回第一次迭代的结果?您的checkPrime函数将立即返回。您可能需要某种递归函数和/或更高效的函数。请为你的问题提供一些解释。你的高级思维在这里很奇怪。你经常检查2,然后在数字范围内循环?然后将真值转换为布尔值?这是如何解决素数问题的呢?谢谢你的帮助:
def checkPrime(number):       
    return any(number % p == 0 for p in range(2, number))
def checkPrime(number):
    for p in range(2,number):
        if((number % p == 0)): return False

    return True