Quantcast

A community for students. Sign up today!

Here's the question you clicked on:

55 members online
  • 0 replying
  • 0 viewing

shupler

  • 2 years ago

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

  • This Question is Closed
  1. rsmith6559
    • 2 years ago
    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.

  2. andrew.m.higgs
    • 2 years ago
    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.

  3. drichmond6021023
    • 2 years ago
    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

  4. shupler
    • 2 years ago
    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

  5. shupler
    • 2 years ago
    Best Response
    You've already chosen the best response.
    Medals 1

    every*

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

    • Attachments:

Ask your own question

Ask a Question
Find more explanations on OpenStudy

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.