• Support PF! Buy your school textbooks, materials and every day products Here!

Python code for generating prime# list and evaluting a number

  • Comp Sci
  • Thread starter mr.me
  • Start date
  • #1
49
0

Homework Statement


I am attempting to allow a user to enter a number and check to see if it is in a list of already generated prime numbers


Here's my attempt

Where can I put the code to allow the number to be checked, the prime list generator works fine alone


Code:
def buildPrimeList ():
    
    primeList = [1, 2]
    possiblePrime = 3
    print "To calculate a list of prime values less than or equal a number..."

    x=int(raw_input("Enter a number higher then 3   "))
   
    while (possiblePrime <= x):  # changed input method
        divisor = 2
        isPrime = True
        y= int(raw_input("To see if a number is in the list enter that number enter -1 to exit: "))       
        while (divisor < possiblePrime ): #change condition to only less than possible prime
            if ((possiblePrime % divisor) == 0): 
                isPrime = False
          divisor = divisor + 1
        
        if (isPrime):
            primeList.append(possiblePrime)
            print primeList
            
        if y== -1:
            print "Goodbye"
            break
        if y in primeList:
            print y, "Is in the list"
        if y not in primeList:
            print y, "Is not in the list"    
                 
      possiblePrime = possiblePrime + 2
        
            
    return primeList
   
    
buildPrimeList()
 
Last edited:

Answers and Replies

  • #2
Dick
Science Advisor
Homework Helper
26,258
618
Why are you asking them to enter a number to check if it's in the list before you are done building the list? Why don't you move the y stuff outside of the loop that builds the list?
 
  • #3
49
0
The user is supposed to be repeatedly prompted, that is why the y=raw_input is in the loop
 
  • #4
Dick
Science Advisor
Homework Helper
26,258
618
It's still in the wrong place. Make a loop outside of buildPrimeList and put your input there.
 
  • #5
49
0
Thanks,

I did this and it works well enough, any general suggestions on the code

Code:
def buildPrimeList ():
    
    primeList = [1, 2]
    possiblePrime = 3
    print "To calculate a list of prime values less than or equal a number..."
    
    x=int(raw_input("Enter a number higher then 3   "))
    
    while  (possiblePrime <= x):  # for personal preference changed range to raw_input, so that the range can be arbitrary, though at a certain point a large range will consume a-lot of memory
        divisor = 2
        isPrime = True
              
        while (divisor < possiblePrime ):
            if ((possiblePrime % divisor) == 0): 
                isPrime = False
            divisor = divisor + 1
        if (isPrime):
            primeList.append(possiblePrime)
        
        possiblePrime = possiblePrime + 2
    while (primeList==primeList):   
        y= int(raw_input("To see if a number is in the list enter that number enter -1 to exit: "))    
        if y== -1:
            print "Goodbye"
            break
        if y in primeList:
            print y, "Is in the list"
        if y not in primeList:
            print y, "Is not in the list"
           
    return primeList
 

Related Threads on Python code for generating prime# list and evaluting a number

  • Last Post
Replies
4
Views
1K
Replies
6
Views
11K
  • Last Post
Replies
1
Views
1K
Replies
4
Views
1K
Replies
1
Views
16K
Replies
2
Views
2K
Replies
2
Views
1K
Replies
9
Views
1K
  • Last Post
Replies
1
Views
7K
Top