6. is_prime returning none


#1

Hi all,

i have put the following code and the error i am getting is that the value it returns is none as you can see below and I really cannot see where it is going wrong.

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

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 True
            else:
                return False

Thanks all for your help.


#2

i don't see why you have x-1 in your range(), range does not include the stop value, so no need to subtract one.

this code:

if x%n == 0:
    return True

if the remainder is zero, the number is not a prime, false should be returned.

once you fixed that, you only want to return true after the loop has finished running, change the indent of else so that else only runs after the for loop


#3

Thanks for the help.

All worked well now.


#4