anonymous
  • anonymous
I need a little assistance with pst1a. Here is a copy of my code. http://dpaste.com/534798/ My thinking was, before count hits 1000, add 1 to x. If it is odd, do a for loop on it dividing x by every integer from 2 to x. If there is a remainder and x is not divided by itself then it must be prime, add to the list, add a count and break. So far its only giving me back all the odd numbers. Where did I go wrong in this logic?
MIT 6.00 Intro Computer Science (OCW)
  • Stacey Warren - Expert brainly.com
Hey! We 've verified this expert answer for you, click below to unlock the details :)
SOLVED
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
schrodinger
  • schrodinger
I got my questions answered at brainly.com in under 10 minutes. Go to brainly.com now for free help!
anonymous
  • anonymous
Break only works within while/for loops http://docs.python.org/release/2.5.2/ref/break.html So what you are actually doing is for every odd number, creating a list starting at 2, all the way to x (line8) (@Line 9) Then using the first number in that list, 2, dividing your odd number by it and checking to see if X is equal to 2 (Which it isn't because you are only picking odd numbers) Obviously this will store every odd number because you are ALWAYS checking them against the integer 2. Try rethinking your usage of range in this function. =)
anonymous
  • anonymous
do the opposite case if there is not a remainder and they are not equal then break since it is not prime. so we move on to the next quicker. if you look for a remainder like now you are basically appending every situation that fulfills the if condition, but you just want to append the prime.
anonymous
  • anonymous
I also picked 2 for my range but one could just start at 3, won't matter, but you see I took the opposite case... # prime.py # finds primes up to 1000 list=[] for k in range(1001): if ((k%2)==1): for j in range(2,k+1): if( ((k%j)==0) and j

Looking for something else?

Not the answer you are looking for? Search for more explanations.

More answers

anonymous
  • anonymous
I was able to get my code to work after I broke yours apart a little Beeb. count = 0 x = 1 prime = [2] while count < 1000: x += 1 for i in range(2, x+1): if x%i == 0 and x != i: break elif not(x%i) and i == x: prime.append(x) count += 1 print prime I just have a question. I dont understand what is happening in this line elif not(x%i) and i == x: Can you please explain. Thanks

Looking for something else?

Not the answer you are looking for? Search for more explanations.