## A function to check weather a number is prime or not def isPrime(number, i=2): #Exclude zero and one if number <= 0 or number == 1: return False #Check if i is equal to the number if thats the case then we have exhausted the list of integers to check against #Declare number prime if number == i: return True #Check if the number is divisble by i if number % i == 0: return False #increment i and call the function again. return isPrime(number, i+1) ## A function to find all prime numbers in the given range and retun them in a list def prime_in_range(min_value, max_value): prime = [] """ Every prime number except two and three can be represented as 6n+1 and 6n-1 where n is a natural number. So, rather than checking all numbers in the range we are going to check numbers that satisfy the above equations. """ min_n = ((min_value + 1) // 6) max_n = ((max_value + 1) // 6) ## Check weather to include 2 and 3 in the list. if min_value <= 2 and max_value >= 2: prime = prime + [2] if min_value <= 3 and max_value >= 3: prime = prime + [3] ## Check extreme cases separately to exclude lower than min and larger than max values number1 = (6 * min_n - 1) number2 = (6 * min_n + 1) ## Check if the numbers are prime using the function written above if number1 >= min_value and isPrime(number1): prime = prime + [number1] if isPrime(number2): prime = prime + [number2] ## Add all other prime numbers to the list. for i in range(min_n + 1, max_n): number1 = (6 * i - 1) number2 = (6 * i + 1) ## Check if the numbers are prime using the function written above if isPrime(number1): prime = prime + [number1] if isPrime(number2): prime = prime + [number2] ## Check extreme cases separately to exclude lower than min and larger than max values number1 = (6 * max_n - 1) number2 = (6 * max_n + 1) ## Check if the numbers are prime using the function written above if number2 <= max_value and isPrime(number1): prime = prime + [number1] if isPrime(number1): prime = prime + [number2] return prime ## Main Program to call the above function if __name__ == "__main__": ## Ask the user for input min_value = int(input('Please Enter Minimum Value: ')) max_value = int(input('Please Enter Maximum Value: ')) prime = prime_in_range(min_value, max_value) if prime == []: print("No prime numbers in the range") else: print("The following are prime numbers in the range") print(prime)