有人可以解释为什么数字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()
答案 0 :(得分:0)
由于下面的函数只有当至少有1个模数不等于0的数字时才应该将数字识别为素数
您似乎误解了主要检查是如何运作的。 isprime
方法实际检查是否存在模数等于零的否数字。此外,它仅检查相关的号码,但不包括0
和1
,因为任何号码的模数为{{1} }为零,实际上未定义1
的模数。
在0
的情况下,该函数将检查2
中的所有数字,这是空的,因此它(正确地)返回range(2, 2)
。该函数可以重写为这个,也许更清楚:
True