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
.
Also Read: