# 15.6 is_prime

#1

The code runs perfectly fine, and returns True for a prime number. Even then the control gives error message that for (-7) it is returning True instead of False. As (-7) is prime it should be returning True, which is correct according to me, but then why that error message.

Replace this line with your code.
def is_prime(x):
x=abs(x)

if (x<=1):
return False
elif (x==2):
return True
else:
n=2
c=0
while(n <= x-1):
if (x%n == 0):
c+=1
return False
break
n += 1
if c>1:
return False
else:
return True

print is_prime(57)

#2
if x < 2:

pretty much covers both those lines. Since it returns, we won't need an elif.

We only need this check if we are iterating only odd numbers. For a minimal logic brute force approach, such as devised in this exercise we only need to check for greater than 2.

if x > 2:
# loop code that returns False, or not
return True

#3

Thanks.

I understood the fact later that we are only concerned with the numbers greater than 2 and this is why (-7) was not regarded as a prime number with its abs(-7)=7.

I have now modified the code accordingly and looks fine now.

#4

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