Matty Sarro wrote: > Hey Dave, > Thank you for the heads up. I actually bashed my head against the desk a > few times and eventually I realized what I was doing wrong. Here's my > final code (slightly optimized) that's verified and working. Out of > curiousity, what other optimizations could I throw at it (without diving > too deep too fast). > > #Assignment 1a > #Determine the 1000th prime number > candidate=1 > #Already know that 2 is prime > primeCount=1 > while (primeCount<=1000): > isPrime="true" > i=2 > halfCand=(candidate/2) > while (isPrime=="true") and (i<=halfCand): > if ((candidate%i)==0): > isPrime="false" > else: > i+=1 > if isPrime=="true": > print(candidate, "is a prime.") > primeCount+=1 > #else: > #print(candidate, " is not a prime.") > candidate+=2 > print("The 1000th prime number is ",(candidate-2))
Congrats! One obvious thing would be to replace the "true" and "false" strings with actual boolean values: isPrime = True ... while isPrime and i <= halfCand: ... etc. For a different perspective on the problem have a look at http://mail.python.org/pipermail/python-list/2009-November/1226626.html Peter -- http://mail.python.org/mailman/listinfo/python-list