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: Check Prime Number

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

**Output**

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

This program takes a positive integer from the user and stores it in the variable `n`.

Notice that the boolean variable `is_prime` 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 `is_prime` is set to `false`

.

Else, the initial value of `is_prime` is left unchanged. Then, 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) {
is_prime = 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 iteration beyond `n/2`

is redundant.

If the number entered by the user is perfectly divisible by `i`, then `is_prime` 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 cases of `n == 2`

and `n == 3`

, the `for`

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

.