Program 24 - CSU1128 - CSE 2026 - Shoolini University

Program to print the armstrong number. An armstrong number is the number where the sum of cube of each digit is equal to the number itself. Example 370 = 27 + 343 + 0 = 370

Explanation

The program prints Armstrong numbers between two numbers entered by the user. An Armstrong number is a number where the sum of the cubes of its digits is equal to the number itself.

Header

The code begins with including the standard input-output header files using #include <stdio.h> and #include <math.h> for mathematical functions.

Program Description

The program prints a description message for the user to understand its functionality and explains what an Armstrong number is.

User Input

The user is prompted to enter two numbers between which they want to find and print Armstrong numbers. The input is read using scanf("%d %d", &d, &m);.

Armstrong Number Calculation

The program finds and prints all Armstrong numbers between d and m using a for loop:

  • for (j = d; j <= m; j++): Loops through each number from d to m.
  • int o, n, e = 0, s = 0;: Declares and initializes variables. o is used to extract digits, n holds each digit, e counts the number of digits, and s sums the cubes of the digits.
  • o = j;: Stores the current number in o.
  • while (o != 0): Counts the number of digits in the current number by dividing o by 10 until o is 0.
  • e += 1;: Increments the digit count.
  • o /= 10;: Divides o by 10 to remove the last digit.
  • for (o = j; o > 0; o = o / 10): Extracts each digit of the current number and sums the cubes of the digits.
  • n = o % 10;: Extracts the last digit of o.
  • s += pow(n, e);: Adds the cube of the digit to the sum s.
  • if (j == s): Checks if the sum of the cubes of the digits is equal to the original number.
  • printf("\t %d ", j);: Prints the current number if it is an Armstrong number.

Program End

The program ends with printf("\n"); to print a new line and return 0; to indicate successful execution.

Code

                    
/*
 * -----------------------------------------------------------
 * Logic Building with Computer Programming (CSU1128)
 * Instructor: Dr. Pankaj Vaidya | Author: Divya Mohan
 * 
 * This code is a part of the educational initiative by dmj.one
 * with aim of empowering and inspiring learners in the field of
 * Computer Science and Engineering through the respective courses.
 * 
 * (c) 2022, Divya Mohan for dmj.one. All rights reserved.
 * -----------------------------------------------------------
 */

#include <stdio.h>
#include <math.h>
int main()
{
    int d, m, j;
    printf("\n\n Program to print the armstrong number. An armstrong number is ");
    printf("the number where the sum of cube of each digit is equal to the number itself. ");
    printf("Example 370 = 27 + 343 + 0 = 370 \n\n");

    printf("Enter two number between which you want to print armstrong numbers ");
    printf("(Example: 21 1200) - and press enter: ");
    scanf("%d %d", &d, &m);
    printf("\n Armstrong numbers between %d and %d are: \n", d, m);

    for (j = d; j <= m; j++)
    {
        int o, n, e = 0, s = 0;
        o = j;

        while (o != 0)
        {
            e += 1;
            o /= 10;
        }

        for (o = j; o > 0; o = o / 10)
        {
            n = o % 10;
            s += pow(n, e);

            if (j == s)
                printf("\t %d ", j);
        }
    }

    printf("\n");
    return 0;
}                    
                

Output

Program to print the armstrong number. An armstrong number is the number where the sum of cube of each digit is equal to the number itself. Example 370 = 27 + 343 + 0 = 370

Enter two number between which you want to print armstrong numbers (Example: 21 1200) - and press enter: 100 300
 Armstrong numbers between 100 and 300 are: 125 153 216