# Armstrong number program

In this post, you will learn how to write program in different languages to check whether a given number is Armstrong or not.

A number is called an **Armstrong** number if the sum of its cubes of digits is equal to the number itself. It is also known as the narcissistic number. To lay it out simply, assuming we have a 3-digit number, then each of the digits is raised to the power of three and added to get a number. If the number obtained equals the original number, we call that an Armstrong number. In number theory, we can say an Armstrong number in a given number base **b** is a number that is the sum of its own digits, each raised to the power of the number of digits.

## Formula to check Armstrong number

A positive number of **n** digits is called an Armstrong number of order **n**-

**abcde.... = an + bn + cn + dn + en +**

The following example demonstrates why 371 is an Armstrong number.

```
371 = (3*3*3)+(7*7*7)+(1*1*1)
where:
(3*3*3)=27
(7*7*7)=343
(1*1*1)=1
So:
27+343+1 = 371
```

## C program to check Armstrong number using while loop

In the given **C** program, we have taken input from the user and stored it in a variable **num**. Next, we have split all the digits of the **num** and found the cube value of the digits. Then, we added all the cube values together and saved the output to the variable **sum**. If the **sum** equals to **num**, then the **num** is an Armstrong number, and if the **sum** is not equals to **num**, then the **num** is not an Armstrong number.

```
// C program to find Armstrong number
#include <stdio.h>
int main() {
int num, orgnum, remainder, sum = 0;
// getting input from user
// and store in a variable
printf("Enter a three-digit number: ");
scanf("%d", &num);
orgnum = num;
// Here, we are adding cubes of
// every digit and storing the sum
// in a variable
while (orgnum != 0) {
// remainder contains the last digit
remainder = orgnum % 10;
sum += remainder * remainder * remainder;
// removing last digit from the original number
orgnum /= 10;
}
// check, if sum of cubes of every digit is
// equal to number itself, then the number
// is armstrong
if (sum == num)
printf("%d is an Armstrong number.", num);
else
printf("%d is not an Armstrong number.", num);
return 0;
}
```

**Output of the above code -**

```
Enter a three-digit number: 370
370 is an Armstrong number.
Enter a three-digit number: 154
154 is not an Armstrong number.
Enter a three-digit number: 153
153 is an Armstrong number.
```

## C++ program to check Armstrong number using while loop

```
#include <iostream>
using namespace std;
int main() {
int num, orgnum, remainder, sum = 0;
cout << "Enter a three-digit integer: ";
cin >> num;
orgnum = num;
while (orgnum != 0) {
// remainder contains the last digit
remainder = orgnum % 10;
// Here, we are adding cubes of
// every digit and storing the sum
// in a variable
sum += remainder * remainder * remainder;
// removing last digit from the original number
orgnum /= 10;
}
if (sum == num)
cout << num << " is an Armstrong number.";
else
cout << num << " is not an Armstrong number.";
return 0;
}
```

**Output of the above code:**

```
Enter a three-digit integer: 341
341 is not an Armstrong number.
Enter a three-digit integer: 370
370 is an Armstrong number.
```

## Java program to check Armstrong number using while loop

```
public class ArmstrongNumber {
public static void main(String[] args) {
int number = 371, orgnum, remainder, sum = 0;
orgnum = number;
while (orgnum != 0)
{
remainder = orgnum % 10;
sum += Math.pow(remainder, 3);
orgnum /= 10;
}
if(sum == number)
System.out.println(number + " is an Armstrong number.");
else
System.out.println(number + " is not an Armstrong number.");
}
}
```

**Output of the above code:**

`371 is an Armstrong number.`

## Python program to check Armstrong number using while loop

```
# Python program to check
# if the number is an Armstrong number or not
# take input from the user
num = int(input("Enter a number: "))
sum = 0
# finding the sum of the cube of each digit
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
# display the result
if num == sum:
print(num,"is an Armstrong number")
else:
print(num,"is not an Armstrong number")
```

**Output of the above code:**

```
Enter a number: 407
407 is an Armstrong number
```

### Related Articles

**Java program to find area of triangle**

Area of circle program in Java

Remove duplicate elements from array in Java

Capitalize first letter of each word Java

Convert binary to decimal in Java

Convert array to list Python

Python take screenshot of specific window

Web scraping Python BeautifulSoup

Check if two strings are anagrams Python

Python program to add two numbers

Print new line python

Prime factors of a number in c

Armstrong number program in c

Write a program to check leap year in c

C program to find area of rectangle

C program to convert celsius to fahrenheit

Fibonacci series program in C using recursion

Write a program to find area of circle in C

C program to convert Decimal to Octal

C program to convert decimal to binary

C program to check whether a number is even or odd

Area of circle program in Java

Remove duplicate elements from array in Java

Capitalize first letter of each word Java

Convert binary to decimal in Java

Convert array to list Python

Python take screenshot of specific window

Web scraping Python BeautifulSoup

Check if two strings are anagrams Python

Python program to add two numbers

Print new line python

Prime factors of a number in c

Armstrong number program in c

Write a program to check leap year in c

C program to find area of rectangle

C program to convert celsius to fahrenheit

Fibonacci series program in C using recursion

Write a program to find area of circle in C

C program to convert Decimal to Octal

C program to convert decimal to binary

C program to check whether a number is even or odd