Keep on getting error: Your function fails on is_prime(0). It returns None when it should return False.

This is my code:

def is_prime(x):

for x in range(2, x-1):

if x%2== 0:

return False

else:

return True

# Is_prime

**mtf**#2

`x`

is already defined as the input parameter, so we should not be assigning a new value to it. Try a different variable, such as `n`

...

`for n in range(2, x):`

It is not parity that we are checking (divisible by 2) but divisibility by any number, `n`

.

` if x % n == 0:`

Okay, thanks. I made those changes, but now I get an error that says Your function fails on is_prime(0). It returns True when it should return False.

My code is:

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

**mtf**#4

You're very close, now. Consider that, a) prime numbers are not negative, and, b) zero and 1 are not prime. So that means we can elliminate any number less than two, right off the top.

`if x < 2: return False`

```
>>> def is_prime(x):
if x < 2: return False
for n in range(2, x):
if x % n == 0: return False
else: return True
>>> is_prime(9)
False
>>> is_prime(2)
True
>>> is_prime(0)
False
>>> is_prime(3)
True
>>> is_prime(4)
False
>>>
```

**system**#6

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.