Hi,

Let's go through your code with the number 3, to understand, what's happening:

```
elif 3 > 2: #this is our case
n = 2
while n < 3:
if 3 % n == 0:
return False
n += 1
```

Let's take a closer look at the while-loop:

```
while 2 < 3:
if 3%2 == 0: #won't go in, because it's 1
n += 1 #n = 3 now
```

Now your loop won't work anymore, because 3 (n) < 3 (x) isn't **True** so you fell out of the loop. Now you haven't got anything to return, because you only return something if x%n == 0, so your function will return **None**, that's why it won't work. The program doesn't tell you anything if you type the number 3

Solution:

Delete the "break" (return will kick you out of the function, so you don't need to break the loop )

and then, add an else to the while-loop:

```
def is_prime(x):
if x < 2:
return False
elif x > 2:
n = 2
while n < x:
if x % n == 0:
return False
n += 1
else:
return True
else:
return True
```