# C++ Program to Check Whether a Number is Prime or Not

In this example, we will learn a Program to check whether an integer (entered by the user) is a prime number or not using for loop and if...else statement.

To understand this example, you should have the knowledge of the following C++ programming topics:

## Prime Number

A positive integer which is only divisible by 1 and itself is known as prime number.

For example: 13 is a prime number because it is only divisible by 1 and 13 but, 15 is not prime number because it is divisible by 1, 3, 5 and 15.

**Note:** 0 and 1 are not prime numbers.

## Example: Program to Check Prime Number

```
#include <iostream>
using namespace std;
int main() {
int i, n;
bool isPrime = true;
cout << "Enter a positive integer: ";
cin >> n;
// 0 and 1 are not prime numbers
if (n == 0 || n == 1) {
isPrime = false;
}
else {
for (i = 2; i <= n / 2; ++i) {
if (n % i == 0) {
isPrime = false;
break;
}
}
}
if (isPrime)
cout << n << " is a prime number";
else
cout << n << " is not a prime number";
return 0;
}
```

**Output 1**

Enter a positive integer: 29 29 is a prime number.

##### Working

This program takes a positive integer from the user and stores it in the variable `n`. Notice that the boolean variable `isPrime` is initialized to `true`

at the beginning of the program.

Since **0** and **1** are not prime numbers, we first check if the input number is one of those numbers or not. If the input number is either **0** or **1**, then the value of `isPrime` is set to `false`

.

Else, the initial value of `isPrime` is left unchanged and the `for`

loop is executed, which checks whether the number entered by the user is perfectly divisible by `i` or not.

```
for (i = 2; i <= n / 2; ++i) {
if (n % i == 0) {
isPrime = false;
break;
}
}
```

- The
`for`

loop runs from`i == 2`

to`i <= n / 2`

and increases the value of`i`by 1 with each iteration. - The loop terminates at
`i == n / 2`

because we cannot find any factor for`n`beyond the number`n / 2`

. So, any iterations beyond`n / 2`

is redundant. - If the number entered by the user is perfectly divisible by
`i`, then`isPrime`is set to`false`

and the number will not be a prime number. - But if the input number is not perfectly divisible by
`i`throughout the entirety of the loop, then it means that the input number is only divisible by 1 and that number itself. - So, the given number is a prime number. In the case of
`n == 2`

, the`for`

loop fails to run and the value of`isPrime`remains`true`

.

## Next Example

We hope that this Example helped you develop better understanding of the concept of "Check Whether a Number is Prime or Not" in C++.

**Keep Learning : )**

In the next Example, we will learn about C++ `Display Prime Numbers Between Two Intervals`

.