Java Program to Check Armstrong Number or Not

Here is a java program to check whether a number is armstrong number or not. In this java program, we have to check whether a given number is an armstrong number or not and print the result on screen.
Armstrong number is a number that is equal to the sum of cubes of its digits.
Examples of Armstrong Numbers : 0, 1, 2, 3, 153, 370, 407 etc.

For Example,
153 is an Armstrong number
153 = 1*1*1 + 5*5*5 + 3*3*3

100 is not an Armstrong number
100 is not equal to 1*1*1 + 0*0*0 + 0*0*0
Algorithm to check for Armstrong number
Let N be the given.
  • Find the cubic sum of digits of N, and store it in sum variable.
  • Compare N and sum.
  • If both are equal then N is Armstrong number otherwise not an Armstrong number.

Java program to check Armstrong number or not using loop

This program first takes a number as input from user and stores it in variable 'N'. It makes a copy of number in variable 'temp'. Then using a while loop, it calculates the sum of cubes of every digit of temp(loop will terminate when temp becomes zero) and stores it in a 'sum' variable. If sum is equal to N then it is an Armstrong number otherwise N is not an Armstrong number.

package com.tcc.java.programs;

import java.util.Scanner;

/**
 * Java Program to check Armstrong Number
 */
public class ArmstrongNumber {
    public static void main(String[] args) {
        int N, temp, sum = 0, rightDigit;
        Scanner scanner;
        scanner = new Scanner(System.in);

        System.out.println("Enter an Integer");
        N = scanner.nextInt();

        temp = N;
        /*
         * Find the sum of cubes of every digit of N
         */
        while (temp != 0) {
            rightDigit = temp % 10;
            sum = sum + (rightDigit * rightDigit * rightDigit);
            temp = temp / 10;
        }

        if (sum == N) {
            // N is armstrong number
            System.out.format("%d is Armstrong Number", N);
        } else {
            // N is not an armstrong number
            System.out.format("%d is Not an Armstrong Number", N);
        }
    }
}
Output
Enter an Integer
407
407 is Armstrong Number
Enter an Integer
120
120 is Not an Armstrong Number

Java program to check Armstrong number using function

This java program is similar to above program except here we are using a user defined function "isArmstrongNumber" which takes an integer input and prints whether input number is armstrong number or not.

package com.tcc.java.programs;

import java.util.Scanner;

public class ArmstrongNumberCheckFunction {
    public static void main(String[] args) {
        int N;
        Scanner scanner;
        scanner = new Scanner(System.in);

        System.out.println("Enter an Integer");
        N = scanner.nextInt();

        isArmstrongNumber(N);
    }

    public static void isArmstrongNumber(int N) {
        int sum = 0, rightDigit, temp;
        temp = N;
        while (temp != 0) {
            rightDigit = temp % 10;
            sum = sum + (rightDigit * rightDigit * rightDigit);
            temp = temp / 10;
        }
        
        if (sum == N) {
            // N is armstrong number
            System.out.format("%d is Armstrong Number", N);
        } else {
            // N is not an armstrong number
            System.out.format("%d is Not an Armstrong Number", N);
        }
    }
}
Output
Enter an Integer
407
407 is Armstrong Number

Recommended Posts
Java Program to Print Armstrong Numbers Between 1 to N
Java Program to Check Perfect Number or Not
Java Program to Check a Number is Prime Number or Not
Java Program to Check If a Year is Leap Year or Not
Java Program to Convert Fahrenheit to Celsius
Java Program to Print Prime Numbers between 1 to 100
Java Program to Reverse a Number using Recursion
Java Program to Check Whether a Number is Palindrome or Not
Java Program to Find Factorial of a Number Using Recursion
Java Program to Count Number of Digits in a Number
Java Program to Find Sum of Digits of a Number
All Java Programs