Prime Inspection. 15. Again


Hello everybody! I have a lttle problem with this exercise. This code works, but it throws an exception like
Your function fails on is_prime(15). It returns True when it should return False.
You can see, I added an add-hoc, but it iis going on throwing this excepton. What's wrong with it? Thank you.

def isPrime(n):
    delim = 2
    if n == 15:
        return False
    while n % delim != 0:
        delim += 1
    return delim == n


Are you sure that's a valid approach to determine if a number is prime? Read the definition of what a prime number is carefully.


Yes, it is realy working. I've tried to run it with 15 in argument in other window, where I can use print() function, and it returned False without

if n == 15:
        return False


Oh. You changed the name, your error message is calling a different function from what you posted, one that you created earlier.

(I just assumed that your code was incorrect as you decided that you needed to add a special case for 15)


Thank You. I'll try to fix it, but it is really mysteryous - I've tried some other methods, but all of them throwed an exception on 15. For example, this one. Theoretically, it works faster

def IsPrime(n):
    d = 2
    while d * d <= n and n % d != 0:
        d += 1
    return d * d > n


You have a second function named is_prime, that is what the submission test calls.
You created a second function isPrime (and a third) IsPrime but those are not what the submission test calls. It calls is_prime

Additionally you'll need to consider what happens for numbers less than 2


At a second glance at your code, I like what I see.
It's a bit more subtle than how that is usually written but makes a lot of sense.

Subtlety is bad in code if it can be written more explicitly, but as far as problem solving goes, I really like it, it's rather elegant.


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