Looking for something else?

Not the answer you are looking for? Search for more explanations.

## More answers

Looking for something else?

Not the answer you are looking for? Search for more explanations.

- anonymous

Don't know what I am missing with problem set 1 b

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga.
Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus.
Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.

Get our expert's

answer on brainly

SEE EXPERT ANSWER

Get your **free** account and access **expert** answers to this

and **thousands** of other questions.

Get your **free** account and access **expert** answers to this and **thousands** of other questions

- anonymous

Don't know what I am missing with problem set 1 b

- katieb

I got my questions answered at brainly.com in under 10 minutes. Go to brainly.com now for free help!

Get this expert

answer on brainly

SEE EXPERT ANSWER

Get your **free** account and access **expert** answers to this

and **thousands** of other questions

- anonymous

here's what i have:
#!/usr/bin/env python
# print out prime numbers up to 1000
from math import *
max_prime = 1000 # number of prime numbers to output
isPrime = 1 # boolean testing for prime numbers
prime_candidates = []
prime_numbers = [2]
x = 2
while x < max_prime:
if (x/2)* 2 == x:
x += 1
else:
prime_candidates.append(x)
x += 1
index = 0 # index of prime_candidates list
while index < len(prime_candidates) -1:
isPrime = 1
for i in range (2, prime_candidates[index]):
if prime_candidates[index] % i ==0:
isPrime == 0
index += 1
if isPrime == 1:
prime_numbers.append(prime_candidates[index])
index += 1
sum = 0
n = 80
for i in range (0, n):
sum = sum + log(prime_numbers[i])
print "sum is" , sum , " n is ", n , "ratio is" , sum/n
according to the problem the sum of the logs should be less than n, and as n increases the ratio should be close to 1, which are not the case.

- anonymous

for one thing, isPrime == 0 is a comparison, not an assignment.

- anonymous

Also, n should probably equal max_prime, based on the problem statement:
In this case, the conjecture above reduces to the claim that the sum of the logarithms of all the primes less than n is less than n, and that as n grows, the ratio of this sum to n gets close to 1.

Looking for something else?

Not the answer you are looking for? Search for more explanations.

- anonymous

Hi Somnamniac, thanks for the reply! Shouldn't n be less than or equal to len(prime_numbers), as this is the actual number of primes up until max_prime?
I changed my code in part b to:
n = 20
for i in range (0,n):
if n > prime_numbers[i]:
sum = sum + log(prime_numbers[i])
print "sum is" , sum , " n is ", n , "ratio is" , sum/n
When I calculate by hand for n = 20 ( log(2) + log(3) + log(5) + log (7) + log (11) + log (13) + log (17) + log(19) ) I believe I get the correct answer. However when I plugin large values for n, the ratio exceeds 1.0.

- anonymous

I think we have different interpretations of the problem statement. I'll explain mine (using 1000 as n), and you can see if it makes sense:
the sum of the logarithms of all the primes less than n
translation: "the sum of the logarithms of all the primes less than 1000"
is less than n
"is less than 1000"

- anonymous

I generally copy everything before I post, in case it gets stuck

- anonymous

This is my interpretation:
"the sum of the logarithms of all the primes less than n" (with n =1000)
This would be a total of 191 numbers. [2,3,5,7,11,13,..........967,971,977,983,991,997]
so then the sum would be the log of each of these individual numbers added together, right?

- anonymous

right. and what is that less than?

- anonymous

It's less than n, 1000.
I assume then my is error that I am using the number of primes (191) to calculate the ratio? If I use n = 1000 it looks good. However if I test higher values this way I see the ratio is around 0.176 - 0.18. Like the problem states it does not increase monotonically, but it doesn't seem to get close to 1.

- anonymous

Can you paste your current version?

- anonymous

I found a flaw in my code when I calculated my last post. I attempted to fix it, but now the sum is greater than n and the ratio is greater than 1, when n =1000 :(
#!/usr/bin/env python
# print out prime numbers up to 1000
from math import *
n = 1000 # number until to calculate prime numbers
isPrime = 1 # boolean testing for prime number
prime_candidates = []
prime_numbers = [2]
x = 2
while x < n:
if (x/2)* 2 == x:
x += 1
else:
prime_candidates.append(x)
x += 1
index = 0 # index of prime_candidates list
while index < len(prime_candidates) -1:
isPrime = 1
for i in range (2, prime_candidates[index]):
if prime_candidates[index] % i ==0:
isPrime == 0
index += 1
if isPrime == 1:
prime_numbers.append(prime_candidates[index])
index += 1
sum = 0
#print prime_numbers
num_of_primes = len(prime_numbers)
#print num_of_primes
for i in range (0,num_of_primes):
if n > prime_numbers[i]:
sum = sum + log(prime_numbers[i])
print "sum is" , sum , " n is ",n , "ratio is" , sum/n

- anonymous

You've still got the
isPrime == 0
problem. That should be an assignment, not a comparison

- anonymous

D'oh!
Changing that fixes it! Thank you so much for your patience, I really appreciate it :)

- anonymous

No problem. I'm glad you got it!

Looking for something else?

Not the answer you are looking for? Search for more explanations.