Join our newsletter for the latest updates.

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

In this example, you will learn to check whether an integer is a prime number or an Armstrong or both by creating two separate functions.

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().

    Did you find this article helpful?