Java program to check if a number is Armstrong

Theory

Let a1a2a3…an a number of n digits, where a1, a2, a3,…an are the digits of the number. The number will be called if

a1n+a2n+a3n+a4n+…….+ann = a1a2a3…an (the number itself)

There is only 1 digit in the number from 0 to 9. Now notice that

01 = 0; 11 = 1; 21 = 2; 31 = 3; 41 = 4; 51 = 5; 61 = 6; 71 = 7; 81 = 8; 91 = 9;

So these are all Armstrong numbers. But

12+02 ≠ 10; 12+12 ≠ 11; 12+22 ≠ 12

So these three numbers and many more are not Armstrong. Here are a few more examples of Armstrong numbers:

13+53+33 = 153; 33+73+03 = 370; 33+73+13 = 371; 43+03+73 = 407

So 153, 370, 371 and 407 are also Armstrong numbers.

Java Code

package com.physicsinfo;

import java.util.Scanner;

public class Main {
    public static void main(String args[]){
        System.out.print("Enter the number you want to check for being Armstrong: ");
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        int n = str.length();
        char[] chr = new char[n];
        int[] num = new int[n];
        for (int i=0;i<n; i++){
            chr[i] = str.charAt(i);
            num[i] = Character.getNumericValue(chr[i]);
        }
        double sum = 0;
        for(int j=0;j<n;j++){
            sum = sum +Math.pow(num[j],n);
        }
        if (sum == Double.parseDouble(str)){
            System.out.println("It's a Armstrong number.");
        }
        else{
            System.out.println("It's not a Armstrong number.");
        }
    }
}

Leave a Comment

Your email address will not be published.