Oops, try again. Your function fails on is_prime(3). It returns None when it should return True.

I got past the lesson but I would like to have an understanding of why these two sections of code are different. Why doesn't it recognize the return after the final else in the first example? Thank you

#This one doesn't work

Code:

```
def is_prime(x):
if x < 2:
return False
elif x == 2:
return True
else:
for n in range(2, x-1):
if x % n == 0:
return False
else:
return True
```

Code:

```
def is_prime(x):
if x < 2:
return False
elif x == 2:
return True
else:
for n in range(2, x-1):
if x % n == 0:
return False
return True
```