C Program To Find Prime Number or Not using While Loop

Lets write a C program to check whether user input number is prime number or not, using while loop.

Prime Number: Any natural number which is greater than 1 and has only two factors i.e., 1 and the number itself is called a prime number.

Related Read:
while loop in C programming
if else statement in C

In this video tutorial we’re illustrating 3 methods to find if the user entered number is prime number or not.

While loop Logic

All the numbers are perfectly divisible by number 1, so we initialize the variable count to 2. So our c program starts checking for divisibility from number 2.

Video Tutorial: C Program To Check Whether a Given Number is Prime Number or Not, using While Loop


[youtube https://www.youtube.com/watch?v=hHeESOUH2as]

YouTube Link: https://www.youtube.com/watch?v=hHeESOUH2as [Watch the Video In Full Screen.]

Method 1 Source Code: Prime Number or Not

#include<stdio.h>

int main()
{
    int num, count = 2, flag = 1;

    printf("Enter a number\n");
    scanf("%d", &num);

    while(count < num)
    {
        if(num%count == 0)
        {
            flag = 0;
            break;
        }
        count++;
    }

    if(flag) printf("%d is prime number\n", num);
    else     printf("%d is not prime number\n", num);

    return 0;
}

Output 1:
Enter a number
7
7 is prime number

Output 2:
Enter a number
10
10 is not prime number

Logic: Method 1

We accept the number from the user. In while loop condition we check if the user entered number is greater than the number present in variable count. We are not checking for greater than or equal to, because all the positive natural numbers are divisible by itself, so we skip checking divisibility of user entered number by itself.

Inside while loop we keep incrementing the value of count by one for each iteration and we check if num%count == 0. If that condition is true, then we store 0 in variable flag and break out of the loop. That indicates there is yet another number(other than 1 and the number itself) which perfectly divides the user entered number.

Outside the while loop we check if the value of flag is 1 or 0. If its 1, then the user entered number is prime number orelse its not a prime number.

Method 2 Source Code: Prime Number or Not: Divide By 2

#include<stdio.h>

int main()
{
    int num, count = 2, flag = 1, inum;

    printf("Enter a number\n");
    scanf("%d", &num);

    inum = num / 2;

    while(count <= inum)
    {
        if(num%count == 0)
        {
            flag = 0;
            break;
        }
        count++;
    }

    if(flag) printf("%d is prime number\n", num);
    else     printf("%d is not prime number\n", num);

    return 0;
}

Output 1:
Enter a number
41
41 is prime number

Output 2:
Enter a number
15
15 is not prime number

Logic: Method 2

Please read the logic for method 1 above before proceeding.
In this method, we divide the user entered number by 2. This reduces the number of iterations of while loop.

If num = 50;
inum = num / 2;
inum = 50 / 2;
inum = 25;

So its enough if we iterate through the while loop 25(num/2) times to check if number 50 is divisible by any number from 2 to 25.

Method 3 Source Code: Prime Number or Not: square root Method

#include<stdio.h>
#include<math.h>

int main()
{
    int num, count = 2, flag = 1, inum;

    printf("Enter a number\n");
    scanf("%d", &num);

    inum = sqrt(num);

    while(count <= inum)
    {
        if(num%count == 0)
        {
            flag = 0;
            break;
        }
        count++;
    }

    if(flag) printf("%d is prime number\n", num);
    else     printf("%d is not prime number\n", num);

    return 0;
}

Output 1:
Enter a number
50
50 is not prime number

Output 2:
Enter a number
53
53 is prime number

Logic: Method 3

Please read the logic for method 1 above before proceeding.
In this method, we apply square root to the user entered number and store it inside variable inum. This reduces the number of iterations of while loop.

If num = 50;
inum = sqrt(num);
inum = sqrt(50);
inum = 7;

So its enough if we iterate through the while loop 7( sqrt(num) ) times to check if number 50 is divisible by any number from 2 to 7.

Table of all prime numbers up to 1,000:

prime number or not

Note: We are not using curly braces around if and else because we only have 1 line of code after if and else – so curly braces are optional. If we have multiple lines of code, then we must use curly braces to wrap around the block of code.

You can also watch video for C Program To Find Prime Number or Not using For Loop

For list of all c programming interviews / viva question and answers visit: C Programming Interview / Viva Q&A List

For full C programming language free video tutorial list visit:C Programming: Beginner To Advance To Expert

C Program to Find Perfect Number using while loop

Lets write a C program to check if user entered number is a perfect number or not, using while loop.

Related Read:
Basic Arithmetic Operations In C
while loop in C programming

Perfect Number: A number is called perfect number if sum of its divisors(except the number itself) is equal to the number.

For Example: If the user entered number is 6. The numbers which perfectly divide 6 are 1, 2, 3 and 6. Leave 6 and add all other numbers. i.e., 1 + 2 + 3 = 6. So the entered number and the sum are equal. So 6 is a perfect number.

Source Code: C Program to Find Perfect Number using while loop

#include<stdio.h>

int main()
{
    int num, count = 1, sum = 0;

    printf("Enter a number\n");
    scanf("%d", &num);

    while(count < num)
    {
        if(num%count == 0)
        {
            sum = sum + count;
        }
        count++;
    }

    if(sum == num)
    {
        printf("\n%d is a perfect number\n", num);
    }
    else
    {
        printf("\n%d is not a perfect number\n", num);
    }

    return 0;
}

Output 1
Enter a number
5
5 is not a perfect number

Output 2
Enter a number
6
6 is a perfect number

Output 3
Enter a number
25
25 is not a perfect number

Output 4
Enter a number
28
28 is a perfect number

Video Tutorial: C Program to Find Perfect Number using while loop


[youtube https://www.youtube.com/watch?v=0JBSVq4dTeA]

YouTube Link: https://www.youtube.com/watch?v=0JBSVq4dTeA [Watch the Video In Full Screen.]

Logic To Find Perfect Number using while loop

We initialize variables count to 1 and sum to 0. Next we ask the user to enter a number. We iterate through while loop until value of count is less than the user entered number. Inside while loop we increment the value of variable count by one for each iteration. Inside while loop we also check for the condition – if user entered number modulo division value of count is equal to 0. If its true we add the value of count to the previous value of sum.

After control exits while loop we check if the value of sum and number entered by the user are same. If its same, then the user entered number is perfect number. If not, the number is not a perfect number.

For list of all c programming interviews / viva question and answers visit: C Programming Interview / Viva Q&A List

For full C programming language free video tutorial list visit:C Programming: Beginner To Advance To Expert

C Program to Find First and Last Digit of a Number

Write a C program to find first and last digit of the user input number, without using looping.

Related Read:
Basic Arithmetic Operations In C

Source Code: C Program to Find First and Last Digit of a Number

 
#include < stdio.h >
#include < math.h >

int main()
{
    int num, first, last, count;

    printf("Enter an integer number\n");
    scanf("%d", &num);

    count = log10(num);

    first = num / pow(10, count);
    last  = num % 10;

    printf("First Digit = %d\nLast Digit = %d\n", first, last);

    return 0;
}

Output 1:
Enter an integer number
123
First Digit = 1
Last Digit = 3

Output 2:
Enter an integer number
123456
First Digit = 1
Last Digit = 6

Output 3:
Enter an integer number
15937
First Digit = 1
Last Digit = 7

Output 4:
Enter an integer number
5986
First Digit = 5
Last Digit = 6

Output 5:
Enter an integer number
964801
First Digit = 9
Last Digit = 1

C Program to Find First and Last Digit of a Number


[youtube https://www.youtube.com/watch?v=4D6kDTQNk6E]

YouTube Link: https://www.youtube.com/watch?v=4D6kDTQNk6E [Watch the Video In Full Screen.]


Logic To Find First and Last Digits of a Number

If user enters a number 123. i.e., num = 123; Then num % 10 would give the last digit of the number i.e., 3. To get first digit, we need to know the number of digits present in the number. To get that we make use of a built-in method called log10(). log10() returns the number of digits present in the number minus 1. That is because, it starts the count from 0. So if num = 123, log10(num) will return 2 and not 3. We store the number of digits inside variable count.

Now we use pow() method and calculate 10 to the power of count(value present in variable count) i.e., pow(10, count); We divide the user entered number by pow(10, count); to get the first digit of the number.
i.e., First_Digit = num / pow(10, count);

Note: Both pow() and log10() are built-in methods present in header file math.h So we include that library file at the beginning of our C program source code.

For list of all c programming interviews / viva question and answers visit: C Programming Interview / Viva Q&A List

For full C programming language free video tutorial list visit:C Programming: Beginner To Advance To Expert

C Program to Find Factors of a Number

Write a C program to display Factors of user entered number. All the numbers which perfectly divide a given number are called as Factors of that number.

For Example, if user enters integer number 500. All the numbers which perfectly divide the number 500 are called Factors of number 500.

Related Read:
Basic Arithmetic Operations In C
while loop in C programming

Logic To Find Factors of a Number

We ask the user to enter a integer number. Next we iterate through the while loop until the count is less than or equal to the user entered number. Example, if user entered number is 50, then we iterate through the loop for 50 times. Each time we check if the user entered number is perfectly divisible by the value of count. Initial value of count is 1 and after each iteration of the loop count value increments by 1. Whenever a number perfectly divides the user entered number, we display it as factor of the user entered number.

Source Code: C Program to Find Factors of a Number

#include<stdio.h>

int main()
{
    int num, count = 1;

    printf("Enter a number\n");
    scanf("%d", &num);

    printf("Factors of %d are:\n", num);

    while(count <= num)
    {
        if(num % count == 0)
        {
            printf("%d\n", count);
        }
        count++;
    }

    return 0;
}

Output 1:
Enter a number
50
Factors of 50 are:
1
2
5
10
25
50

Output 2:
Enter a number
200
Factors of 200 are:
1
2
4
5
8
10
20
25
40
50
100
200

Output 3:
Enter a number
400
Factors of 400 are:
1
2
4
5
8
10
16
20
25
40
50
80
100
200
400

Output 4:
Enter a number
500
Factors of 500 are:
1
2
4
5
10
20
25
50
100
125
250
500

C Program to Find Factors of a Number using While Loop


[youtube https://www.youtube.com/watch?v=wEvlZNwmSd4]

YouTube Link: https://www.youtube.com/watch?v=wEvlZNwmSd4 [Watch the Video In Full Screen.]


For list of all c programming interviews / viva question and answers visit: C Programming Interview / Viva Q&A List

For full C programming language free video tutorial list visit:C Programming: Beginner To Advance To Expert

Check whether a Number is Palindrome or Not: C Program

User inputs a integer number and we write a program to reverse that number and if the user input value and the reversed number are equal then its a palindrome number, if not, its not a palindrome number.

Related Read:
C Program To Reverse a Number
Basic Arithmetic Operations In C
while loop in C programming
if else statement in C
Calculate Sum of Digits: C Program

Palindrome Number:
If a number remains same even if we reverse its digits then the number is known as palindrome number.

In other words, a number when read in both forward and backward way is same, then such a number is called a palindrome number.

Note: We assign variable reverse = 0 to avoid garbage values in variable reverse.

Reversing a Number Logic

If user enters 456, we apply the modulo division to get the individual values.
Ex:
456 % 10 = 6
45 % 10 = 5
4 % 10 = 4

After each iteration of while loop we add the reminder to the previous value of variable reverse. We also multiply the variable reverse with 10, to increment the decimal place.

We get 456, 45 and 4 by dividing the original value by 10.
Ex:
456 user entered value.
456 / 10 = 45
45 / 10 = 4

Now the reverse:

reverse = (reverse * 10 ) + rem;

06 = (0*10) + 6
65 = (6*10) + 5
654 = (65*10) + 4

So finally the reversed number is 654.

Check For Palindrome Logic

If the user entered value(original value) is equal to the revered number, then its palindrome number or else its not a palindrome.

For Example:
user entered number is 456.
Reversed number is 654.

So, 456 is not equal to 654, so the number 456 is not a palindrome.

Check whether a Number is Palindrome or Not: C Program


[youtube https://www.youtube.com/watch?v=-zGyt48r5BU]

YouTube Link: https://www.youtube.com/watch?v=-zGyt48r5BU [Watch the Video In Full Screen.]


Source Code: Check whether a Number is Palindrome or Not: C Program

#include < stdio.h >

int main()
{
    int num, reverse = 0, rem, temp;

    printf("Enter a integer number\n");
    scanf("%d", &num);

    temp = num;

    while(num)
    {
        rem = num % 10;
        reverse = reverse * 10 + rem;
        num     = num / 10;
    }

    printf("Reversed number is %d\n", reverse);

    if(temp == reverse)
    {
        printf("Entered number is palindrome\n");
    }
    else
    {
        printf("Entered number is not palindrome\n");
    }

    return 0;
}

Output 1:
Enter a integer number
12345
Reversed number is 54321
Entered number is not palindrome

Output 2:
Enter a integer number
123321
Reversed number is 123321
Entered number is palindrome

For list of all c programming interviews / viva question and answers visit: C Programming Interview / Viva Q&A List

For full C programming language free video tutorial list visit:C Programming: Beginner To Advance To Expert