Is_prime for squares



def is_prime(x):
if x < 2:
return False
elif x == 2:
return True

for n in range(2,x):
    if x % n == 0:
        return False

        return True

Why would this function returns is_prime(9) as true? Same with is_prime(25) also as true. I don't quite understand...

Replace this line with your code.


a function ends the moment a return keyword is reached (even when return keyword is reached in the loop)

so, for x=9 the first value tested by the loop is n=2, so the if condition becomes:

if 9 % 2 ==0:

which evaluate to false, so else runs which returns True, which will end the function


Got it - thanks a lot!