Is_prime for squares


#1



is_prime


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

    else:
        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.


#2

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


#3

Got it - thanks a lot!


#4