数2被认为是素数2模

2024-04-16 19:25:40 发布

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

有人能解释一下为什么在下面的代码中2也被添加到素数列表中吗?你知道吗

当至少有一个数的模不等于0时,下面的函数只能将一个数识别为素数。你知道吗

作为

2 % 0 = 0
2 % 1 = 0

这就是为什么它不应该包括在内,对吗?你知道吗

def isprime(num1):
    for i in range(2, num1):
        if (num1 % i) == 0:
            return False
    return True


def getprimes(max_number):
    list_of_primes = []
    for i in range(2, max_number):
        if isprime(i):
            list_of_primes.append(i)
    return list_of_primes


def main():
    max_num_to_check = int(input('Enter the max limit: '))
    list_of_primes = getprimes(max_num_to_check)

    for i in list_of_primes:
        print(i)


main()

Tags: ofinnumberforreturnifdefrange
1条回答
网友
1楼 · 发布于 2024-04-16 19:25:40

As the function below should only recognize a number as prime when there is at least 1 number with modulus not equal to 0

你好像误解了基本支票的工作原理。isprime方法实际上检查是否有模等于零的数。此外,它只检查相关的数,而这不包括01,因为具有1的任何数的模为零,而具有0的模实际上没有定义。你知道吗

2的情况下,函数将检查range(2, 2)中的所有数字,这是空的,因此它(正确地)返回True。函数可以重写成这样,也许更清楚:

def isprime(num1):
    return not any((num1 % i) == 0 for i in range(2, num1))

相关问题 更多 >