In this section, we will explore the concept of Armstrong numbers and develop Java programs to determine whether a given number qualifies as an Armstrong number or not. The Armstrong number program is commonly encountered in Java coding interviews and academic settings, making it an important topic to understand and practice.
Armstrong Number in Java
An Armstrong number, also referred to as a pluperfect number, plus perfect number, or narcissistic number, is a positive integer with m digits that satisfies the condition of being equal to the sum of the mth powers of its digits. The concept of Armstrong numbers is captured by the OEIS sequence A005188. To better comprehend this concept, let’s delve into an illustrative example.
Example:
1: 11 = 1
2: 21 = 2
3: 31 = 3
153: 13 + 53 + 33 = 1 + 125+ 27 = 153
125: 13 + 23 + 53 = 1 + 8 + 125 = 134 (Not an Armstrong Number)
1634: 14 + 64 + 34 + 44 = 1 + 1296 + 81 + 256 = 1643
Within the range of 0 to 999, several Armstrong numbers can be identified. These numbers possess the unique property of being equal to the sum of the individual digits raised to the power of the total number of digits. The first few Armstrong numbers within this range include 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, and 407. Moreover, there are additional Armstrong numbers such as 1634, 8208, 9474, 54748, 92727, 93084, 548834, 1741725, 4210818, 9800817, 9926315, 24678050, 24678051, 88593477, 146511208, 472335975, 534494836, 912985153, 4679307774, 32164049650, and 32164049651. These numbers exhibit the intriguing property of Armstrong numbers.
Armstrong Number Java Program in Java
Below is a Java program that generates and prints all the Armstrong numbers up to a given limit. The program is designed to identify and display numbers that satisfy the Armstrong number property.
Program:
import java.util.Scanner; import java.lang.Math; public class ArmstsrongNumberExample { //function to check if the number is Armstrong or not static boolean isArmstrong(int n) { int temp, digits=0, last=0, sum=0; //assigning n into a temp variable temp=n; //loop execute until the condition becomes false while(temp>0) { temp = temp/10; digits++; } temp = n; while(temp>0) { //determines the last digit from the number last = temp % 10; //calculates the power of a number up to digit times and add the resultant to the sum variable sum += (Math.pow(last, digits)); //removes the last digit temp = temp/10; } //compares the sum with n if(n==sum) //returns if sum and n are equal return true; //returns false if sum and n are not equal else return false; } //driver code public static void main(String args[]) { int num; Scanner sc= new Scanner(System.in); System.out.print("Enter the limit: "); //reads the limit from the user num=sc.nextInt(); System.out.println("Armstrong Number up to "+ num + " are: "); for(int i=0; i<=num; i++) //function calling if(isArmstrong(i)) //prints the armstrong numbers System.out.print(i+ ", "); } }
Output:
Enter the limit: 999 Armstrong Number up to 999 are: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407
Let’s create another Java program that verifies whether a given number qualifies as an Armstrong number or not. This program focuses on a single number input and determines its Armstrong number status.
Program:
import java.util.Scanner; import java.lang.Math; public class ArmstsrongNumberExample2 { //function to check if the number is Armstrong or not static boolean isArmstrong(int n) { int temp, digits=0, last=0, sum=0; //assigning n into a temp variable temp=n; //loop execute until the condition becomes false while(temp>0) { temp = temp/10; digits++; } temp = n; while(temp>0) { //determines the last digit from the number last = temp % 10; //calculates the power of a number up to digit times and add the resultant to the sum variable sum += (Math.pow(last, digits)); //removes the last digit temp = temp/10; } //compares the sum with n if(n==sum) //returns if sum and n are equal return true; //returns false if sum and n are not equal else return false; } //driver code public static void main(String args[]) { int num; Scanner sc= new Scanner(System.in); System.out.print("Enter the number: "); //reads the limit from the user num=sc.nextInt(); if(isArmstrong(num)) { System.out.print("Armstrong "); } else { System.out.print("Not Armstrong "); } } }
Output 1:
Enter the number: 2 Armstrong
Output 2:
Enter the number: 1675 Not Armstrong
We hope you have gained a clear understanding of the Armstrong Number Program in Java. For further exploration, you can visit tutorials.freshersnow.com.