C Program to Check Armstrong Number

Created with Sketch.

Example #1: Check Armstrong Number of Three Digits

Introduction

In this section, we’ll explore how to check if a number of three digits is an Armstrong number or not. We’ll discuss the concept of Armstrong numbers, provide an algorithm to determine whether a number meets the criteria, and present C code examples with outputs.

Armstrong Number

An Armstrong number (also known as a narcissistic number) is a number that is equal to the sum of its own digits, each raised to the power of the number of digits. For example, 153 is an Armstrong number because:

Algorithm to Check Armstrong Number of Three Digits

To determine if a three-digit number is an Armstrong number:

  1. Take an input number num.
  2. Extract each digit from num.
  3. Calculate the sum of the cubes of the individual digits.
  4. Compare the sum with the original number num.
  5. If the sum equals num, it’s an Armstrong number; otherwise, it’s not.

C Program for Checking Armstrong Number of Three Digits

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

int main() {
    int num, originalNum, remainder, result = 0, n = 0;

    printf("Enter a three-digit number: ");
    scanf("%d", &num);

    originalNum = num;

    // Finding the number of digits
    while (originalNum != 0) {
        originalNum /= 10;
        ++n;
    }

    originalNum = num;

    // Check if num is Armstrong number
    while (originalNum != 0) {
        remainder = originalNum % 10;
        result += pow(remainder, n);
        originalNum /= 10;
    }

    if (result == num)
        printf("%d is an Armstrong number.\n", num);
    else
        printf("%d is not an Armstrong number.\n", num);

    return 0;
}

Output Example

Input: 153

Enter a three-digit number: 153
153 is an Armstrong number.

Input: 370

 
Enter a three-digit number: 370
370 is an Armstrong number.

Input: 123

 
Enter a three-digit number: 123
123 is not an Armstrong number.

Example #2: Check Armstrong Number of n Digits

Introduction

In this section, we’ll extend the concept of Armstrong numbers to any number of digits. We’ll provide a generalized algorithm and demonstrate it with C code examples and outputs.

Algorithm to Check Armstrong Number of n Digits

To determine if a number of n digits is an Armstrong number:

  1. Take an input number num.
  2. Find the number of digits in num.
  3. Extract each digit from num.
  4. Calculate the sum of the nth power of the individual digits.
  5. Compare the sum with the original number num.
  6. If the sum equals num, it’s an Armstrong number; otherwise, it’s not.

C Program for Checking Armstrong Number of n Digits

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

int main() {
    int num, originalNum, remainder, result = 0, n = 0;

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

    originalNum = num;

    // Finding the number of digits
    while (originalNum != 0) {
        originalNum /= 10;
        ++n;
    }

    originalNum = num;

    // Check if num is Armstrong number
    while (originalNum != 0) {
        remainder = originalNum % 10;
        result += pow(remainder, n);
        originalNum /= 10;
    }

    if (result == num)
        printf("%d is an Armstrong number.\n", num);
    else
        printf("%d is not an Armstrong number.\n", num);

    return 0;
}

Output Example

Input: 9474 (4-Digit Armstrong Number)

Enter a number: 9474
9474 is an Armstrong number.

Input: 1634 (4-Digit Armstrong Number)

 
Enter a number: 1634
1634 is an Armstrong number.

Input: 12345 (5-Digit Number, Not Armstrong)

 
Enter a number: 12345
12345 is not an Armstrong number.

Conclusion

In this blog post, we discussed the concept of Armstrong numbers and provided C programs to check if a given number (of either three digits or n digits) is an Armstrong number. These examples illustrate how to implement the Armstrong number check in C and verify

Leave a Reply

Your email address will not be published. Required fields are marked *