hi list, i am trying the MIT opencourseware assignments.
one was to find the 1000th prime.
since this isn't actually my homework, I modified the solution as I would
like to collect lists of primes and non-primes up to N, also some log()
ratio to one comparison.
here is what I came up with on paper:
#!/usr/bin/env python
import sys, os, math
def main(a):
notprime = []
primelist = [2,3]
nprime = sys.argv[1]
numcheck = 4
while len(primelist) < nprime:
for i in range(2,numcheck-1):
if numcheck % i == 0:
print numcheck,'is not prime'
notprime.append(numcheck)
numcheck += 1
break
if i == numcheck and numcheck % i !=0:
print numcheck, 'is prime'
primelist.append(numcheck)
numcheck += 1
break
TwotoN = 0
for j in primelist:
TwotoN += log(j)
print 'sum of logs of primes from 2 to', nprime,'is',TwotoN
print 'the ratio of this sum to 1 is' %f % (float(TwotoN)/nprime)
if __name__=='__main__':
main(sys.argv[1])
my questions would be:
am I passing arguments from the command line correctly?
this seems to count by twos (going through both 'if statements' maybe?)
I thought the 'break' would send control back to the 'while'
basically, is there an obvious problem here or is it just completely wrong?
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor