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

I did problem set 1a after the second lecture and was able to get something to work. After the third lecture, I went back and tried to incorporate some of the new stuff. However, I seem to have a snag that I can't seem to figure out. It does great until x=25. It finds the 24th prime (change x to 24), but when x is 25 it returns 95 as a prime number. Any thoughts? x = 25 ##to stop when reaching the Xth prime number count = 1 ##count starts at one since it will miss 2, the first prime # prime_n = 1 ##testing number while (count

OpenStudy (anonymous):

Full Code: x = 25 ##to stop when reaching the Xth prime number count = 1 ##count starts at one since it will miss 2, the first prime # prime_n = 1 ##testing number while (count<x): ##to stop when reaching the Xth prime number prime_n += +2 for test_divisor in range (2,prime_n/2): ## stopping the test at one half of the number if (prime_n%test_divisor == 0): ## checks for remainder prime_n += +2 ## if there is a remainder moves on to the next prime count += + 1 ##moves the count to find the xth prime number print 'the #', count,'prime number is', prime_n

OpenStudy (anonymous):

if you use dpaste.com or something similar to post your code it is easier for everyone. first - don't forget that the range function will return a list that does NOT contain the "stop" number - prime_n/2 in this case. next - it looks like you are changing the number you are testing within the loop that changes the divisor - that can lead to incorrect results - putting print statements in your is a good debugging tool, i've put a print statement in your code that will let you see what is happening http://dpaste.com/545075/.

OpenStudy (anonymous):

Thanks a ton. I see what the problem is now. It is moving on to the next prime and continuing with the same number for the test divisor. Should have done this check before posting, but I'm still learning. Thanks

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!