You are treating "i" as a range when it is a single variable defined against the list "impossible". Thats one issue you have getting working code to determine a prime number. The other is approach. Using a list is not a n efficient way to go.

```
for i in impossible:
for y in i:
if x % int(i[y]) == 0:
```

I have awful trouble figuring this out and it turns out that indentation key stroke stumped me for a day! <>

My approach in figuring it out was based on the use of range() to determine a prime number greater then 2. Using a for loop efficiently was the way way to go but BEWARE of your whitespace. Indent properly or you will get trapped like I did.

Here is my solution to the prime number issue:

```
x = int(raw_input("please enter your prime number for checking now"))
def is_prime(x):
if x == 2:
return True
print "X equals two, True printed" #TEST CODE
elif x < 2:
return False
print "Program recognises x < 2" #TEST CODE
elif x == 3:
return True
print "X equals three, True printed" #TEST CODE
elif x > 3:
print "just before for loop" #TEST CODE
for n in range(2, x - 1):
if x % n == 0:
return False
return True
print is_prime(x)
```