###### C++ Decision Making

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

# 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`.