Quantcast

Got Homework?

Connect with other students for help. It's a free community.

  • across
    MIT Grad Student
    Online now
  • laura*
    Helped 1,000 students
    Online now
  • Hero
    College Math Guru
    Online now

Here's the question you clicked on:

55 members online
  • 0 replying
  • 0 viewing

shupler Group Title

current_count=1 x=3 Desired_prime_count=int(raw_input('Pick desired Nth largest Prime Number ')) if Desired_prime_count<1: print( 'Please redue with a positive integer ') elif Desired_prime_count==1: print (2) elif Desired_prime_count>1: while(current_count<Desired_prime_count): for i in range(2,x): if x%i==0:x=x+2 else:x=x+2 current_count=current_count+1 print (x-2) So this was my miserable attempt at problem set 1 problem 1 for Fall 2008 for finding prime numbers. 5 hours of self troubleshooting, still can't get it to work. Help

  • one year ago
  • one year ago

  • This Question is Closed
  1. rsmith6559 Group Title
    Best Response
    You've already chosen the best response.
    Medals 0

    When you're writing any program, you should break the problem down into smaller problems, and then break them down into smaller problems and keep doing this until the problems are so small that basically you're forced to write code. One math thing to remember: if a number isn't prime, ultimately it will be divisible by prime numbers. I think it's referred to as the least multiplier.

    • one year ago
  2. andrew.m.higgs Group Title
    Best Response
    You've already chosen the best response.
    Medals 0

    Also try to put some print statement in here and there to see if the program is doing what you expect. I am sure you will be surprised.

    • one year ago
  3. drichmond6021023 Group Title
    Best Response
    You've already chosen the best response.
    Medals 1

    current_count=1 x=3 Desired_prime_count=int(raw_input('Pick desired Nth largest Prime Number ')) if Desired_prime_count<1: print( 'Please redue with a positive integer ') elif Desired_prime_count==1: print (2) elif Desired_prime_count>1: while(current_count<Desired_prime_count): for i in range(2,x): print "in for loop" if x%i==0: x=x+2 print x else: x=x+2 print "else"+str(x) print "out of for loop" current_count=current_count+1 print (x-2) #Look about nine posts below at Alban18 for three different solutions to #this problem. #Indeed learning programming is a very humbling process, in my continuing #experience anyway. #first decide that you want to learn how and don't worry about the whiz kids #who can't remember when they were helped, (this is what i tell myself) #let desiredPrimeCount be 3, then in for loop i=2 and x=3(as assigned) so, #3%2 is 1, so skips if body goes to else; x is now 5 currentCount is 2, #leaves for loop, (i'm not sure but i think here 2 is the only number in #range (2,3)) SO in the for again (i=2) x is 5, 5%2 is 1 so skips if body and goes #to else body x becomes 7 and currentCount is now 3; but still in for loop(i=3) #which checks 7%3 is 1 so skips the if body goes to the else body x becomes 9 #currentCount becomes 4, but still in for loop(i=4) with x (the for loop's x) #at value of 5, checks 9%4=1, skips the if body goes to the else body, #x becomes 11; since i is no longer in range we break to the while loop where #current count now 3 having been updated in the for loop, I don't think you #wanted increase the loop count here- should probably be on the same indent #level as the while, but currentCount now three we get kicked out of the while #and print 9(11-2). #if you fix the currentCount indent your range grows faster than your i can #catch it #ctrl c will get you out of an infinite loop at least in idle

    • one year ago
  4. shupler Group Title
    Best Response
    You've already chosen the best response.
    Medals 1

    from math import * primeslist=() logsum=0 current_count=1 x=3 y=0 Desired_prime_count=int(raw_input('Pick desired Nth largest Prime Number ')) if Desired_prime_count<1:print( 'Please redue with a positive integer ') elif Desired_prime_count==1: print 2 print log(2) print log(2)/2 elif Desired_prime_count>1: while(current_count<Desired_prime_count): for i in range(2,x): if x%i!=0:y=y+1 if y==x-2: current_count=current_count+1 primeslist=primeslist+(x,) y=0 x=x+2 x=x-2 print x for c in primeslist: logsum+=log(int(c)) print logsum+log(2) print (logsum+log(2))/x ok this is what ended up working, drichmond, you were right about my range not getting larger per iteration. had to move it back a bracket for it to work. Also I didn't realize the i was for ever individual integer within the range. (I originally thought it would be a collective whole). a bit sluggish but it works :P

    • one year ago
  5. shupler Group Title
    Best Response
    You've already chosen the best response.
    Medals 1

    every*

    • one year ago
    • Attachments:

See more questions >>>

Your question is ready. Sign up for free to start getting answers.

spraguer (Moderator)
5 → View Detailed Profile

is replying to Can someone tell me what button the professor is hitting...

23

  • Teamwork 19 Teammate
  • Problem Solving 19 Hero
  • You have blocked this person.
  • ✔ You're a fan Checking fan status...

Thanks for being so helpful in mathematics. If you are getting quality help, make sure you spread the word about OpenStudy.

This is the testimonial you wrote.
You haven't written a testimonial for Owlfred.