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 fromi == 2
toi <= 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 numbern / 2
. So, any iterations beyondn / 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
, thefor
loop fails to run and the value of isPrime remainstrue
.
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
.