Is prime


#1

I have the following code:

def is_prime(x):
    result = False
    for n in range(2, x-1):
        if x % n == 0:
            result = False
        else:
            result = True
    if x == 2 or x == 3:
        result = True
    return result

When I Save and Submit code, I get the error message "Your function fails on is_prime(6). It returns true, when it should return false."
What is happening wrong?


#2

I would personally first check if x is 2 or 3 before running the loop.

Your loop is a bad idea, why? Because the last value of your for loop (in case of is_prime(6) the last value of the for loop is 5), determines if it is a prime. 5 is a prime, so true gets returned. Each time the loop runs, result gets overwritten with True or False, which is why the last value count, what you actually want to do is:

for loop:
     if condition:
          return False
return True

this will return false if if is true for any of the values, return False (the number is not a prime), or return True it loops through all the values. A function ends when the return statement is reached, which is why it is important your if x == 2 or x == 3 is before the loop


#3

3 posts were split to a new topic: 15.prime


#8

A post was split to a new topic: Code is not working