6. is_prime I see other people's answers being more complicated. Is my code sufficient for this lesson?


def is_prime(x):

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


Also I've seen some answers consisting of for n in range(2,x) Is this the same as range(2, (x - 1))


Both may be disregarded. Once we get to range(x/2 +1) there are no factors. It is just a brute force loop with little or no logical sense. That is to be ironed out later in our own study.

Eventually we hit upon the square root of x plus one as the range. That is the logical limit. And if we have a list of Primes up to that range, that is all we need really iterate, and nothing else.


Mind that indentation is part of Python's way of distinguishing code blocks. It is critical.

def is_prime(x):
    if x < 2: return False
    if x > 2:
        for n in range(2, int(x ** 0.5) + 1):
            if x % n == 0: return False
    return True


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