Join our newsletter for the latest updates.
C++ Program to Check Whether a Number is Prime or Not

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

Example 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:


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 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

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