C Program to Check Prime or Armstrong Number Using User-defined Function

To understand this example, you should have the knowledge of the following C programming topics:


    Visit these pages to learn to check whether a number is


    Example: Check Prime and Armstrong

    #include <math.h>
    #include <stdio.h>
    
    int checkPrimeNumber(int n);
    int checkArmstrongNumber(int n);
    
    int main() {
       int n, flag;
       printf("Enter a positive integer: ");
       scanf("%d", &n);
    
       // check prime number
       flag = checkPrimeNumber(n);
       if (flag == 1)
          printf("%d is a prime number.\n", n);
       else
          printf("%d is not a prime number.\n", n);
    
       // check Armstrong number
       flag = checkArmstrongNumber(n);
       if (flag == 1)
          printf("%d is an Armstrong number.", n);
       else
          printf("%d is not an Armstrong number.", n);
       return 0;
    }
    
    // function to check prime number
    int checkPrimeNumber(int n) {
       int i, flag = 1, squareRoot;
    
       // computing the square root
       squareRoot = sqrt(n);
       for (i = 2; i <= squareRoot; ++i) {
          // condition for non-prime number
          if (n % i == 0) {
             flag = 0;
             break;
          }
       }
       return flag;
    }
    
    // function to check Armstrong number
    int checkArmstrongNumber(int num) {
       int originalNum, remainder, n = 0, flag;
       double result = 0.0;
    
       // store the number of digits of num in n
       for (originalNum = num; originalNum != 0; ++n) {
          originalNum /= 10;
       }
    
       for (originalNum = num; originalNum != 0; originalNum /= 10) {
          remainder = originalNum % 10;
    
          // store the sum of the power of individual digits in result
          result += pow(remainder, n);
       }
    
       // condition for Armstrong number
       if (round(result) == num)
          flag = 1;
       else
          flag = 0;
       return flag;
    }

    Output

    Enter a positive integer: 407
    407 is not a prime number.
    407 is an Armstrong number.
    

    In this program, two user-defined functions checkPrimeNumber() and checkArmstrongNumber() are created.

    The checkPrimeNumber() function returns:

    • 1 if the number entered by the user is a prime number.
    • 0 if the number entered by the user is not a prime number.

    Similarly, checkArmstrongNumber() function returns:

    • 1 if the number entered by the user is an Armstrong number.
    • 0 if the number entered by the user is not an Armstrong number.

    Note: In checkPrimeNumber() and checkArmstrongNumber() functions, the flag variables are the return value of the functions.

    In main(), the flag variable stores the values returned by checkPrimeNumber() and checkArmstrongNumber().