This code example generates all prime numbers within a given range. It is a good python example with uses: if statements, for loops, while loops, and user inputs. I know the code can be optimized but I leave it to you. The code is licensed under GNU GPLv3.
Copy the code and save it to a file named primefinder.py and run.
The Code:
#!/usr/bin/env python
print 'This program finds all prime numbers between a range given'
nMin = eval(raw_input('Enter left hand side of the range: '))
nMax = eval(raw_input('Enter right hand side, number is excluded: '))
# Checking if nMin is to small for this algorithm
if nMin <= 2: # If less than 2, add to and start with 3
a = [2]
print '2'
nMin = 3
else:
a = []
i = 2
# Loop to find all primes in the range
for n in range(nMin,nMax):
while i < n: # For every number less than n:
if n%i != 0: # If n is not a factor of i
prime = 1 # Set the checking variable to true
i = i +1 # Go to next number
else:
prime = 0 # Otherwise set checking variable to false
i = n + 1 # Exit the loop
i = 2 # Reset i for next number in the range
# Print the primes found and save them in variable a
if prime == 1:
print n
a.append(n)
# Find out how many was found and print result
Size = len(a)
print 'The number of prime numbers found in this range is', Size
# Ask user what to do next.
while 1>0:
print 'Would you like me to reprint all the numbers?'
ANS = raw_input('yes/no: ')
if ANS == 'yes':
print a
exit()
elif ANS == 'no':
exit()
else:
print 'Type yes or no'
An example of the code running:
This program finds all prime numbers between a range given Enter left hand side of the range: 0 Enter right hand side, number is excluded: 50 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 The number of prime numbers found in this range is 15 Would you like me to reprint all the numbers? yes/no: yes [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
No comments:
Post a Comment