Ask your own question, for FREE!
MIT 6.00 Intro Computer Science (OCW) 15 Online
OpenStudy (lucifer):

Can someone explain what is wrong with this code that I get an error. I want to print the primes between 3 and 11. eventually I want to find the 1000th prime for pset01.

OpenStudy (lucifer):

here is my code

OpenStudy (maitre_kaio):

Explain the logic of this code. I see you're trying to do it recursively, but I need help to understand.

OpenStudy (anonymous):

http://pastebin.com/XRvYy0zu Here is a quick revision of your code. Take a look at the changes I made to it. You will be able to enter a number there and find it to be prime or not.

OpenStudy (lucifer):

Thank you, I can see why your code would work mortir, but I'm curious what was wrong with mine. Here is the logic

OpenStudy (anonymous):

i get this traceback http://dpaste.com/695033/

OpenStudy (lucifer):

I know. what does this mean? what should I do to my code?

OpenStudy (maitre_kaio):

I still don't understand what you're trying to do. But this error message means you are trying to use the variable i before having given an initial value to it. You have to initialize i before the while loop.

OpenStudy (lucifer):

But I said i = 3 -- first line.

OpenStudy (maitre_kaio):

Warning: I am *not* saying it's good programming style. I'm just explaining where does this error comes from. Check this : http://www.saltycrane.com/blog/2008/01/python-variable-scope-notes/ You are using a variable named i inside a function, and another variable named i is defined in the global scope. If you want the interpreter to know that, inside the function, you are setting the global variable, you have to say it this way: global i If you do that, you have another error, not related to the first one: TypeError: unsupported operand type(s) for +: 'int' and 'str' Easy to fix by putting str() around i in the print statement. After that the program seems to run: http://pastebin.com/VS8kYf56 Doesn't produce good results though.

OpenStudy (lucifer):

sigh ... I know it somehow thinks 9 is prime. Now this is my slightly better attempt using morfir's code -- explanation provided of course. The only problem is, it refuses to find ith primes for i>100. otherwise, it works fine. heh -- the wonderful world of incompetent newbie programming... please, can you explain what that error is. How can I understand what these errors mean in general -- maybe if I can see visually the program running line by line...

OpenStudy (lucifer):

wohooo... done it 7919 it was a small matter of increasing the recursion limit. did everyone do that or just me?

OpenStudy (anonymous):

http://docs.python.org/reference/executionmodel.html don't think i tackled this one with recursion

Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!
Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!