C++ Program to find Prime Number or Not using While Loop
Before going to the program for Prime Number or Not first let us understand what is a Prime Number?
Prime Number:
A Prime Number is a number greater than 1 and which is only divisible by 1 and the number itself.
For example,
17 is a Prime Number, because 17 is not divisible by any number other than 1 and 17.
To find whether a Number is Prime Number or Not it is enough to check whether ‘n’ is divisible by any number between 2 and √n. If it is divisible then ‘n’ is not a Prime Number otherwise it is a Prime Number.
Related: C Program to display Prime Numbers between Two Intervals
Program code for Prime Number or Not in C++:
/* Prime Number or Not */ #include<iostream.h> #include<conio.h> #include<math.h> void main() { int n, i=2, flag=0; clrscr(); cout<<"Enter a positive integer value: "; cin>>n; /* Loop to check whether 'n' is divisible by any number between 2 and sqrt(n) */ while(i<=sqrt(n)) { if(n%i==0) { flag=1; break; } i++; } /* if else condition to print Prime Number or Not */ if (flag==0) cout<<n<<" is a prime number."; else cout<<n<<" is not a prime number."; getch(); }
Related: Prime number or Not in C using For Loop
Working:
- First the computer reads the positive integer value from the user.
- Then using while loop it checks whether ‘n’ is divisible by any number between 2 and √n.
- Finally if else condition is used to print the number is prime number or not .
Step by Step working of the above Program Code:
For Prime Number:
- Let us assume that a user enters the positive integer value as 17.
- It assigns the value of flag=0, n=17.
- It assigns the value of i=2 and the loop continues till the condition of the while loop is true.
3.1. i<=sqrt(n) (2<=√17) while loop condition is true
n%i==0 (17%2==0) if condition is false
i++ (i=i+1) So i=3
3.2. i<=sqrt(n) (3<=√17) while loop condition is true
n%i==0 (17%3==0) if condition is false
i++ (i=i+1) So i=4
3.3. i<=sqrt(n) (4<=√17) while loop condition is true
n%i==0 (17%4==0) if condition is false
i++ (i=i+1) So i=5
3.4. i<=sqrt(n) (5<=√17) while loop condition is false
It comes out of the while loop.
- flag==0 (0==0) if condition is true
So it prints 17 is a prime number.
- Thus program execution is completed.
For Not a Prime Number:
- Let us assume that a user enters the positive integer value as 21.
- It assigns the value of flag=0, n=21.
- It assigns the value of i=2 and the loop continues till the condition of the while loop is true.
3.1. i<=sqrt(n) (2<=√21) while loop condition is true
n%i==0 (21%2==0) if condition is false
i++ (i=i+1) So i=3
3.2. i<=sqrt(n) (3<=√21) while loop condition is true
n%i==0 (21%3==0) if condition is true
It assigns flag=1
breaks the loop and comes out of the while loop
- flag==0 (1==0) if condition is false
So it goes to else part and prints 21 is not a prime number.
- Thus program execution is completed.
Output:
TO DOWNLOAD THE PROGRAM CODE : CLICK HERE
What if you enter 2,how the loop works?
1. If you enter 2.
2. It assigns the value of flag=0, n=2.
3. It assigns the value of i=2 and the loop continues till the condition of the while loop is true.
3.1. i<=sqrt(n) (2<=√2) while loop condition is false.
4. flag==0 (0==0) if condition is true
So it prints 2 is a prime number.