MIT OpenCourseWare 6.00 Introduction to Computer Science and Programming: Lesson 2, HW 1
# Problem Set 1 & 2
# Name: Jeroen Pelgrims
# Collaborators:
# Time: 0:15
#
def isPrime(x):
if x <= 1 or x == 4:
return False
for i in range(2, int(x/2)):
if x%i==0:
return False
return True
def gOdds():
i=2
while True:
if i%2 != 0:
yield i
i += 1
def gPrime():
yield 2
odds = gOdds()
i = odds.next()
while True:
if isPrime(i):
yield i
i = odds.next()
gPrimeI = gPrime()
#Problem 1
print [gPrimeI.next() for x in range(1000)][-1]
#Problem 2
gPrimeI = gPrime()
from math import log
valuesOfN = [10**x for x in range(0, 5)]
#the first 10000 primes
primes = [gPrimeI.next() for x in range(max(valuesOfN))]
for n in valuesOfN:
logSum = sum([log(primes[x]) for x in range(n) if primes[x] < n])
print "%7d %5d %6.2f" % (logSum, n, logSum/n)
resurge
1 year ago