I'm trying to define prime numbers, but my algorithm doesn't recognize 2
as a prime number
. Instead return None
. I try it in Google Colab
, Jupiter Notebook
and PyCharm
with same result.
My code:
# V1) Test all divisors from 2 through n-1. (skip 1 and n)
def is_prime_v1(n):
""" Return 'True' if 'n' is a prime number. False otherwise. """
if n == 1:
return False # 1 is not prime
for d in range(2, n):
if n % d == 0:
return False # Is not prime
return True
# ===== Test Function =====
for n in range(1, 21):
print(n, is_prime_v1(n))
My output:
1 False
2 None
3 True
4 False
5 True
6 False
7 True
8 False
9 True
10 False
11 True
12 False
13 True
14 False
15 True
16 False
17 True
18 False
19 True
20 False
Additionally, the return has some erros, like 9
is not a prime number
.
This code is from, starting in 0:46
: Python and Prime Numbers || Python Tutorial || Learn Python Programming