- C++ Programming Examples
- C++ Programming Examples
- C++: Hello World
- C++: Get Input
- C++: Print Integer
- C++: Add two numbers
- C++: Add, Sub, Multiply, Div
- C++: Add Digits
- C++: Find Average and Percentage
- C++: Find Arithmetic Mean
- C++: Sum of n Natural Numbers
- C++: Sum of n Numbers
- C++: Square's Area and Perimeter
- C++: Rectangle's Area and Perimeter
- C++: Triangle's Area and Perimeter
- C++: Area and Circumference
- C++: Find Simple Interest
- C++: Fahrenheit to Celsius
- C++: Celsius to Fahrenheit
- C++: Print Prime Numbers
- C++: Reverse a Number
- C++: Swap Two Numbers
- C++: Print Multiplication Table
- C++: Find Factorial of a Number
- C++: Find Factors of a Number
- C++: Find HCF and LCM
- C++: Create a Calculator
- C++: Count Digits in a Number
- C++: First and Last Digit Sum
- C++: Product of Number Digits
- C++: Sum of Squares of Digits
- C++: Interchange Digits of Number
- C++ if-else Programs
- C++: Check Even or Odd
- C++: Check Prime or Not
- C++: Check Alphabet or Not
- C++: Check Vowel or Not
- C++: Check Leap Year or Not
- C++: Check Reverse equals Original
- C++: Check Perfect Number
- C++: Check Palindrome or Not
- C++: Check Armstrong or Not
- C++: Divisibility Test
- C++: Find Labor Wage
- C++: Find Discounted Price
- C++: Find Shipping Charge
- C++: Find Telephone Bills
- C++: Calculate Student Grade
- C++: Largest of Two Numbers
- C++: Largest of Three Numbers
- C++ Number Conversion
- C++: Decimal to Binary
- C++: Decimal to Octal
- C++: Decimal to Hexadecimal
- C++: Binary to Decimal
- C++: Binary to Octal
- C++: Binary to Hexadecimal
- C++: Octal to Decimal
- C++: Octal to Binary
- C++: Octal to Hexadecimal
- C++: Hexadecimal to Decimal
- C++: Hexadecimal to Binary
- C++: Hexadecimal to Octal
- C++ Pattern Programs
- C++: Pattern Programs
- C++: Print Diamond Pattern
- C++: Print Floyd's Triangle
- C++: Print Pascal's Triangle
- C++ Array Programs
- C++: 1D Array Program
- C++: Linear Search
- C++: Binary Search
- C++: Largest Element in an Array
- C++: Smallest Element in an Array
- C++: Find Second Largest Element
- C++: Find Second Smallest Element
- C++: Sum of All Elements
- C++: Multiply All Elements
- C++: Element in Even Position
- C++: Element in Odd Position
- C++: Print Even Numbers in Array
- C++: Print Odd Numbers in Array
- C++: Count Even or Odd Numbers
- C++: Sum of Even or Odd Numbers
- C++: Count Positive, Negative, Zero
- C++: Reverse an Array
- C++: Insert an Element
- C++: Delete an Element
- C++: Merge two Arrays
- C++: Bubble Sort
- C++: Selection Sort
- C++: Insertion Sort
- C++: Common Elements
- C++: 2D Array Programs
- C++: Add Two Matrices
- C++: Subtract Two Matrices
- C++: Transpose Matrix
- C++: Multiply Two Matrices
- C++: 3D Array Programs
- C++ String Programs
- C++: Print String
- C++: Find String Length
- C++: Compare Two Strings
- C++: Copy String
- C++: String Concatenation
- C++: Reverse a String
- C++: Delete Vowels from a String
- C++: Delete a Word from a String
- C++: Count Characters in a String
- C++: Count Words in a String
- C++: Frequency of Words
- C++: Remove Spaces from Strings
- C++: Sort a String
- C++: Uppercase to Lowercase
- C++: Lowercase to Uppercase
- C++: Swap Two Strings
- C++: Check the Anagram or Not
- C++: Capitalize All Words in a String
- C++: Get Numbers from a String
- C++ File Programs
- C++: Read a File
- C++: Write Content to a File
- C++: Append Data to a File
- C++: Read and Display File
- C++: Copy a File
- C++: Merge Two Files
- Count Characters in a File
- C++: Capitalize Every Word
- C++: List Files in Directory
- C++: Delete a File
- C++: Encrypt and Decrypt a File
- C++ Misc Programs
- C++: Print ASCII Value
- C++: Add Binary Numbers
- C++: Generate Random Numbers
- C++: Print a Smiling Face
- C++: Days into Years and Months
- C++: Add Two Numbers using Pointer
- C++: Print Fibonacci Series
- C++: Generate Armstrong Numbers
- C++: Find nCr and nPr
- C++: Get IP Address
- C++: Print Date and Time
- C++: Shutdown and Restart Computer
- C++ Programming Tutorial
- C++ Tutorial
C++ program to check if a given number is a prime number or not
In this article, you will learn and get code on checking whether a given number, given by the user at run-time, is a prime number or not in C++. The program is created in the following ways:
- Check if a number is prime or not without using a function or a class
- Check if a number is prime or not using a user-defined function
- Using class and object, determine whether a number is a prime number
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 no factors except 1 and the number itself, then it is called a prime number. For example, 13, 7, 17, 19, 23, etc.
Examine the prime number in C++
To check whether the number is a prime number or not in C++ programming, you have to ask the 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 built and runs under the Code::Blocks IDE. Here is its sample run:
Now supply any number as input, say 13, and press the ENTER key to check whether it is a prime or not, as shown here:
The dry run of the above program (with user input 13) goes like this:
- Initially chk=0 and num=13 (the user entered 13).
- Inside the for loop, the initialization part executes first and only once. Therefore i=2
- Checks whether the value of i is less than the value of num or not.
- The condition evaluates to be true because 2 (the value of i) is less than 13 (the 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 the value of i ever divides num, just increment the value of count and exit the loop using the break keyword.
- Because 13 is not divisible by 2, the condition evaluates to be false, therefore program flow doesn't go inside the if's body.
- Now the program flow goes to the update part of the for loop and increments the value of i. Now i=3. Checks for the condition again to see if i<num or 3<13 evaluates to true or false.
- Condition again evaluates to be true, therefore program flow again goes inside the loop.
- In this manner, each time you enter the loop, check whether the num's value is divisible by the i's value.
- Continue the process until the condition of the 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.
In C++, use a function to check the prime number
Now let's create the same-purpose program using a user-defined function called checkPrimeNumber(). It takes the number entered by the user as an argument and returns a value. Initialize its return value to a variable, say chk, so check its value and print the message accordingly.
#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 the previous program. Here is its sample run with user input as 16:
You can also prefer the program given below for the same purpose as the previous one. In this program, rather than returning a value to the 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"; }
In C++, check the prime number using the class
This is the last program that uses classes and objects to check for the prime number. The question is: write a program in C++ to check whether an input number is a prime number or not using classes. 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 the above code is:
- A CodesCracker (class) object c is created.
- Using this object, we have called the function getData() of the class CodesCracker.
- and its return value gets initialized to num inside the main() function.
- Because the getdata() function receives a value from the user and returns it, the number entered by the 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), and its return value gets initialized to chk inside the main() function.
- Finally, we have checked the value of chk and printed the message.
The same program in different languages
« Previous Program Next Program »