Newbie question - calculating prime numbers

Peter Otten __peter__ at web.de
Tue Aug 10 15:18:31 CEST 2010


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




More information about the Python-list mailing list