I had a bunch of trouble on the first part, and had to resort to looking up other student's solutions to adapt them for myself. Thank you Duallain! The second part only took about thirty minutes.
# This my solution to problem 1
number = int(raw_input('What prime would you like to find? ')
list_of_primes = [2]
number_of_primes = 1
testing_number = 3
def primality(n):
for a in list_of_primes:
if n % a == 0:
return False
return True
while number_of_primes <= number-1:
if primality(testing_number) == True:
list_of_primes.append(testing_number)
number_of_primes += 1
testing_number += 2
else:
testing_number += 2
# Here is problem 2
from math import *
while continuity == False:
def generate_primelist(z):
list_of_primes = [2]
number_of_primes = 1
testing_number = 3
def primality(n):
for a in list_of_primes:
if n % a == 0:
return False
return True
while list_of_primes[-1] != z:
if primality(testing_number) == True:
list_of_primes.append(testing_number)
number_of_primes += 1
testing_number += 2
else:
testing_number += 2
return list_of_primes
def take_log(list_of_primes):
sum_of_logs = 0
for a in list_of_primes:
sum_of_logs += log(a)
return sum_of_logs
prime = int(raw_input('Please enter a prime to test: ')
prime_list_z = generate_primelist(prime)
prime_log = take_log(prime_list_z)
print 'Your number is: ', prime
print 'The natural logarithm of all the primes up to your number is : ', prime_log
print 'The ratio of these two quantities is: ', prime_log/n, '\n'
continuity = 'Do you wish to continue? y/n: '
if continuity == y:
continuity == True
else:
continuity == False