C++ program to check for prime number or not

In this example, we will write a C++ program to check whether the number entered by the user is a prime number or not.

we will determine the prime number by using:-

  • using for loop
  • using while loop
  • using do-while loop

What is a prime number?

The number which will divide by only 1 or itself is called a prime number. for example, 2 3 5 7 11 13 17, etc. are prime numbers.


Using For loop

Now let's see the prime number program in C++. In this program, we will take input from a user and check the prime number using for loop.

#include<iostream>
using namespace std;
int main()
{
    int num, i, flag = 0;
    cout<<"Enter the Number: ";
    cin>>num;

    if(num == 0 || num == 1){
        flag=1;
    }

    for(i = 2; i <= (num / 2); i++)
    {
        if(num % i == 0)
        {
           flag = 1;
            break;
        }
    }
    if(flag == 0)
        cout<<num<<" is a Prime Number"<<endl;
    else
        cout<<num<<" is a not Prime Number"<<endl;
        
    return 0;
}
output
Enter the Number: 13
13 is a Prime Number
Enter the Number: 6
6 is a not Prime Number
Explanation:

In this program, you have taken input from a user and stored it in a variable say num.

now check if num is 0 or 1 then set the flag=1.

Iterate the loop from 2 to (n/2). inside loop use if-statement for checking whether the remainder is zero. if the remainder is zero then set flag=1

after the end of a loop, check if flag=1 then the print number is prime, if flag=0 then else part will get executed and print number is not a prime number.


Check prime number using while loop

This program is the same as above only here we will determine whether the number entered by the user is a prime number or not using a while loop.

#include<iostream>
using namespace std;
int main()
{
    int num, i=2, flag = 0;
    cout<<"Enter the Number: ";
    cin>>num;

    /* 0 and 1 is not prime number */
    if(num == 0 || num == 1){
        flag=1;
    }

    while(i <= (num / 2))
    {
        if(num % i == 0)
        {
           flag = 1;
            break;
        }
        i++;
    }
    if(flag == 0)
        cout<<num<<" is a Prime Number"<<endl;
    else
        cout<<num<<" is a not Prime Number"<<endl;
        
    return 0;
}

The output of this program is the same as above


using the do-while loop

In this example, we will write a C++ program for determining prime numbers using the do-while loop. the output will same as the above two programs.

/* check prime number using do while loop */
#include<iostream>
using namespace std;
int main()
{
    int num, i=2, flag = 0;
    cout<<"Enter the Number: ";
    cin>>num;

    /* 0 and 1 is not prime number */
    if(num == 0 || num == 1){
        flag=1;
    }

    do
    {
        if(num % i == 0)
        {
           flag = 1;
            break;
        }
        i++;
    } while(i <= (num / 2));
    
    if(flag == 0)
        cout<<num<<" is a Prime Number"<<endl;
    else
        cout<<num<<" is a not Prime Number"<<endl;
        
    return 0;
}

Since we have iterated the loop till n/2 in all the above programs. therefore, the time complexity of all the above programs will be O(n)/2.