Python prime number generator using generators
Write a Python program that creates a generator function that generates all prime numbers between two given numbers.
A prime number (or a prime) is a natural number greater than 1 that is not a product of two smaller natural numbers. A natural number greater than 1 that is not prime is called a composite number. For example, 5 is prime because the only ways of writing it as a product, 1 × 5 or 5 × 1.
Sample Solution:
Python Code:
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
def prime_nums_generator():
n = 2
while True:
if is_prime(n):
yield n
n += 1
# Create the generator object
primes = prime_nums_generator()
# Accept input from the user
n = int(input("Input the number of prime numbers you want to generate? "))
# Generate and print the first 10 prime numbers
print("First",n,"Prime numbers:")
for _ in range(n):
print(next(primes))
Sample Output:
Input the number of prime numbers you want to generate? 12 First 12 Prime numbers: 2 3 5 7 11 13 17 19 23 29 31 37
Explanation:
In the above exercise,
- The is_prime(n) function checks whether a number n is prime.
- The prime_nums_generator() function is a generator. It initializes n to 2, the first prime number, and enters an infinite loop. It checks if n is prime using the is_prime() function, and if so, it yields n. Then, it increments n by 1 and continues the loop.
- The generator object primes is created by calling the prime_nums_generator() function.
- The program prompts the user to input the number of prime numbers they wish to generate and stores it in the variable n.
- The program then iterates over the generator using a for loop. In this case, it generates and prints the specified number of prime numbers by calling next(primes).
Flowchart:
Python Code Editor:
Contribute your code and comments through Disqus.
Previous: Python random number generator using generators.
Next: Python Fibonacci generator using generators.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics