为什么3不是素数?
why is 3 not prime number?
判断函数是nprime还是不是
def test_prime(n):
if n == 1:
return False
elif n==2:
return True
else:
for e in range(2,n): # iteration from 2 to n
if e % 2 == 0:
return False
return True
这里为什么3不是素数?
print(test_prime(3))
那是因为你实现的逻辑是错误的。正如已经指出的那样,您的代码当前正在检查您输入的数字是偶数还是奇数。要检查数字是否为质数,您可以执行以下操作:
def test_prime(n):
if n == 1:
return False
elif n==2:
return True
else:
for e in range(2,n): # iteration from 2 to n
if n % e == 0:
return False
return True
else
条件将检查输入数字除以range
中每个数字后的余数是否为0。如果它是 0 那么它不是质数。此外,您可以 运行 从 0 循环到 n
的一半,这比建议的更有效。
数字 3 不是质数,因为代码中的逻辑来自范围 (2,n),return 数字 2 和 2%2 == 0 会是什么,这是错误的。
判断函数是nprime还是不是
def test_prime(n):
if n == 1:
return False
elif n==2:
return True
else:
for e in range(2,n): # iteration from 2 to n
if e % 2 == 0:
return False
return True
这里为什么3不是素数?
print(test_prime(3))
那是因为你实现的逻辑是错误的。正如已经指出的那样,您的代码当前正在检查您输入的数字是偶数还是奇数。要检查数字是否为质数,您可以执行以下操作:
def test_prime(n):
if n == 1:
return False
elif n==2:
return True
else:
for e in range(2,n): # iteration from 2 to n
if n % e == 0:
return False
return True
else
条件将检查输入数字除以range
中每个数字后的余数是否为0。如果它是 0 那么它不是质数。此外,您可以 运行 从 0 循环到 n
的一半,这比建议的更有效。
数字 3 不是质数,因为代码中的逻辑来自范围 (2,n),return 数字 2 和 2%2 == 0 会是什么,这是错误的。