# C++ program to find all prime numbers in a range

# Find out all prime numbers in a range in C++ :

A prime number is a natural number with only two factors: 1 and the number itself. Or we can’t have two numbers smaller than that numbers with a multiplication equal to that number itself.

Prime number finding is one of the most commonly asked interview questions in C++. If you know how to check if a number is prime or not programmatically, you can easily write one program to print all prime numbers in a range.

In this post, we will write one C++ program to find out all prime numbers in a range. We will get the numbers as input from the user in this program.

## Algorithm to use :

We are going to use the below steps in this program :

- Get the start and the end number from the user.
- Check for each number if it is a prime or not.
- If a number is prime, print it.

Use the below steps to check if a number is prime or not. We are using one separate function to do the prime check. This function returns one *boolean* value :

- The first prime number is
*2*. If the number is less than*2*, return false. Else, move to the next step. - Run one loop starting from
*2*to*number/2*. If any number in this range can divide the*number*, return*false*i.e. this number is not a prime. - If no number is found that can divide the
*number*, this number is a prime number. Return*true*for that.

### C++ program :

#include <iostream> using namespace std; // 5 bool isPrime(int no) { // 6 if (no < 2) { return false; } // 7 for (int i = 2; i <= no / 2; i++) { if (no % i == 0) { return false; } } return true; } int main() { // 1 int start; int end; // 2 cout << "Enter the start number : " << endl; cin >> start; cout << "Enter the end number : " << endl; cin >> end; // 3 for (int i = start; i < end; i++) { // 4 if (isPrime(i)) { cout << i << " "; } } cout << endl; }

### Explanation :

*The commented numbers in the above program denote the step numbers below :*

- Create two integer variables
*start*and*end*to hold the start and the end position. - Ask the user to enter the start position. Read it and store it in
*start*variable. Similarly, read and store the end position in*end*variable. - Run one
*for loop*. This loop runs from*start*to*end*. - For each value of
*i*in the loop, check if it is prime or not. We are using*isPrime*method for it. It returns*true*if*i*is prime. Else, it returns*false*. *isPrime*method takes one integer number as its argument. The return value is boolean.- If the value of
*no*is less than*2*, return*false*i.e., not a prime number. - Check from
*2*to*no/2*, if any number can divide*no*or not. If yes, return*false*i.e. it is not a prime number. Once the loop ends, and if we can’t find any factor, return*false*.

### Sample Output :

Enter the start number : 1 Enter the end number : 10 2 3 5 7 Enter the start number : 10 Enter the end number : 100 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

## 0 Comments