C++ Program to Check Prime or Not

In this article, you will learn and get code on checking whether a given number by user at run-time is a prime number or not in C++. The program is created in following ways:

  • Check Prime Number or Not without using Function and Class
  • Using user-defined Function
  • Using Class and Object

What is a Prime Number ?

A prime number is a number that can only be divisible by 1 and the number itself. That is, if a number has not any factor except 1 and the number itself, then it is called as prime number. For example, 13, 7, 17, 19, 23 etc.

Check Prime Number

To check whether the number is a prime number or not in C++ programming, you have to ask from user to enter a number first, and then check and print as shown in the program given below:

If a number, n is divisible by any number from 2 to one less than the number (n-1), then it is not prime, otherwise it is a prime number.

#include<iostream>
using namespace std;
int main()
{
    int num, i, chk=0;
    cout<<"Enter a Number: ";
    cin>>num;
    for(i=2; i<num; i++)
    {
        if(num%i==0)
        {
            chk++;
            break;
        }
    }
    if(chk==0)
        cout<<"\nIt is a Prime Number";
    else
        cout<<"\nIt is not a Prime Number";
    cout<<endl;
    return 0;
}

This program was build and run under Code::Blocks IDE. Here is its sample run:

C++ program check prime number

Now supply any number as input say 13 and press ENTER key check whether it is a prime or not as shown here:

prime number program c++ programming

The dry run of above program (with user input 13) goes like:

  • Initially chk=0. And num=13 (13 entered by user)
  • Inside the for loop, initialization part executes first and only once. Therefore i=2
  • Checks for the condition, whether the value of i is less than the value of num or not
  • The condition evaluates to be true, because 2 (value of i) is less than 13 (value of num), therefore program flow goes inside the loop
  • Inside the loop, there is an if statement that checks whether the value of num is divisible by the current value of i or not
  • Note - If anytime, the value of i divides num, then just increment the value of count and exit the loop using break keyword
  • Because 13 is not divisible by 2, so the condition evaluates to be false, therefore program flow doesn't goes inside the if's body
  • Now program flow goes to update part of for loop and increments the value of i. Now i=3. Again checks for the condition, whether i<num or 3<13 evaluates to be true or false
  • Condition again evaluates to be true, therefore program flow again goes inside the loop
  • In this way, every-time going inside the loop, check whether the num's value is divisible by i's value or not.
  • Continue the process until the condition of for loop evaluates to be false
  • After exiting from the loop, check for the value of chk and print the message
  • That is, if chk holds its initial value (0), then the given number is a prime number, otherwise it is not a prime number

Check Prime Number using Function

Now let's create the same purpose program using a user-defined function checkPrimeNumber(). It takes the the number entered by user as its argument and returns a value. Initialize its return value to a variable say chk, so check its value and print the message accordingly. To learn more about function in C++, you can follow its separate tutorial.

#include<iostream>
using namespace std;
int checkPrimeNumber(int);
int main()
{
    int num, chk;
    cout<<"Enter a Number: ";
    cin>>num;
    chk = checkPrimeNumber(num);
    if(chk==0)
        cout<<"\nIt is a Prime Number";
    else
        cout<<"\nIt is not a Prime Number";
    cout<<endl;
    return 0;
}
int checkPrimeNumber(int num)
{
    int i, chk=0;
    for(i=2; i<num; i++)
    {
        if(num%i==0)
        {
            chk++;
            return chk;
        }
    }
    return chk;
}

It will produce the same output as of previous program. Here is its sample run with user input as 16:

check prime number using function c++

You can also prefer the program given below for the same purpose as of previous one. In this program, rather returning value to main() function, this program checks and prints directly from inside the function:

#include<iostream>
using namespace std;
void checkPrimeNumber(int);
int main()
{
    int num;
    cout<<"Enter a Number: ";
    cin>>num;
    checkPrimeNumber(num);
    cout<<endl;
    return 0;
}
void checkPrimeNumber(int num)
{
    int i, chk=0;
    for(i=2; i<num; i++)
    {
        if(num%i==0)
        {
            chk++;
            break;
        }
    }
    if(chk==0)
        cout<<"\nIt is a Prime Number";
    else
        cout<<"\nIt is not a Prime Number";
}

Check Prime Number using Class

This is the last program that uses class and object to check for prime number. The question is, write a program in C++ to check whether an input number is a prime number or not using class. Here is its answer:

#include<iostream>
using namespace std;
class CodesCracker
{
    private:
        int num, i, chk;
    public:
        int getData();
        int checkPrimeNumber(int);
};
int CodesCracker::getData()
{
    cout<<"Enter a Number: ";
    cin>>num;
    return num;
}
int CodesCracker::checkPrimeNumber(int num)
{
    int i, chk=0;
    for(i=2; i<num; i++)
    {
        if(num%i==0)
        {
            chk++;
            return chk;
        }
    }
    return chk;
}
int main()
{
    CodesCracker c;
    int num, chk=0;
    num = c.getData();
    chk = c.checkPrimeNumber(num);
    if(chk==0)
        cout<<"\nIt is a Prime Number";
    else
        cout<<"\nIt is not a Prime Number";
    cout<<endl;
    return 0;
}

The brief explanation of above code is:

  • An object c is created of type CodesCracker (class)
  • Using this object, we have called a function getData() of the class CodesCracker
  • And its return value gets initialized to num inside the main() function
  • Because, getdata() function receives a value from user and returns it, therefore the number entered by user is basically initialized to num
  • Now we've passed num to checkPrimeNumber() function. This function checks whether it is a prime or not. It returns 0 (if num is a prime number) or 1 (if num is a composite number), its return value gets initialized to chk inside the main() function
  • Finally, we have checked the value of chk and prints the message

Same Program in Other Languages

C++ Online Test


« Previous Program Next Program »