Is_prime - Works on my computer, but not in the practice window?


HI all! I'm stuck on is_prime and was wondering if I could get some help.

I'm getting an infinite loop on the practice window yet the code works when I just run it on my Mac.

Running this in terminal gives me the correct answer every time. Running it on codecademy, not so much. Am I missing an infinite loop? Thanks!!

def is_prime(x):
	if x == 1:
	    return False
	elif x == 2:
	    return True
		n = 2
		while n != x:
			if x % n == 0:
				return False
			elif n + 1 == x:
				return True
				n += 1
number = raw_input("Give me a number and let\'s see if it's a prime number: ")
number = int(number)
print is_prime(number)


There is an infinite loop if x starts below 2, n will keep increasing and x can be -10 so they will never be equal.

Also, you don't need those breaks, they will never be hit.


As already alluded to, this is a condition that may never NOT be met. Better in these cases to pick one side or the other to approach from.

while n < x:


Ah, that makes sense!!! So if I understand this correctly,

n != x will in many cases always be true. For example - 0.

Once I changed this to < it worked. I also removed the breaks. I read up and returns break a loop as does a break.

Thanks everyone!!