简体   繁体   中英

To check if a number is Armstrong number using java

this is my program:

public class ArmstrongNumber {

    public static void main(String args[]) {
        int n = 0, temp = 0, r = 0, s = 0;
        Scanner in = new Scanner(System.in);
        System.out.println("Enter a number ");
        if (in.hasNextInt()) {
            n = in.nextInt(); // if there is another number  
        } else {
            n = 0;
        }
        temp = n;
        while (n != 0) {
            r = n % 10;
            s = s + (r * r * r);
            n = n / 10;
        }

        if (temp == s) {
            System.out.println(n + " is an Armstrong Number");
        } else {
            System.out.println(n + " is not an Armstrong Number");
        }
    }
}  

output:

Exception in thread "main" java.lang.NoClassDefFoundError

I tried it using DataInputStream but still getting same error.

// To check the given no is Armstrong number (Java Code)

class CheckArmStrong{
public static void main(String str[]){
    int n=153,a, b=0, c=n;
    while(n>0){
              a=n%10;  n=n/10;  b=b+(a*a*a);
              System.out.println(a+"  "+n+"  "+b);  // to see the logic
            }
    if(c==b)  System.out.println("Armstrong number");
    else      System.out.println(" Not Armstrong number");
    }
}

Find any digit is Armstrong number or not using loop

for(int arm_num = 0 ; arm_num < 100000 ; arm_num++)
        {
            String[] data = String.valueOf(arm_num).split("(?<=.)");
            int lngth = String.valueOf(arm_num).length();

            int arm_t_num = 0;

            int ary[] = new int[lngth];

            for(int i = 0 ; i < lngth ; i++)
            {
                ary[i] = Integer.parseInt(data[i]);

                for(int x = 0 ; x < lngth-1 ; x++)
                {
                    ary[i] = ary[i] * Integer.parseInt(data[i]);
                }

                arm_t_num+=ary[i];
            }

            if(arm_num == arm_t_num)
            {
                System.out.println("Number is ArmStrong : "+arm_num);
            }
        }

you need to set CLASS_PATH variable and point it to where ever your class file is

then this should work

I have tried it locally, refer my answer to check how to set class path and how to compile and run java code using command prompt

import java.util.Scanner;

/* a number is armstrong if the sum of cubes if individual digits of 
a number is equal to the number itself.for example, 371 is 
an armstrong number. 3^3+7^3+1^3=371.
some others are 153,370,407 etc.*/

public class ArmstrongNumber {

    public static void main(String args[]) {

        int input, store, output=0, modolus;
        Scanner in = new Scanner(System.in);
        System.out.println("Please enter a number for ckecking.");
        input = in.nextInt();
        store = input;
        while(input != 0) {
            modolus = input % 10;
            output = output + (modolus * modolus * modolus);
            input = input / 10;
        }
        System.out.println(output);

        if(store == output) {
            System.out.println("This is an armstrong number.");
        } else {
            System.out.println("This is not an armstrong number.");
        }
        in.close();
    }
}
import java.util.Scanner;

public class AmstrongNumber {

    public static void main(String[] args) {

        System.out.println("Enter the number");
        Scanner scan=new Scanner(System.in);
        int x=scan.nextInt();
        int temp2=0;

        String s1 = Integer.toString(x);
        int[] a = new int[s1.length()];
        int[] a1 = new int[s1.length()];
        for (int i = 0; i < s1.length(); i++){
            a[i] = s1.charAt(i)- '0';
            int temp1=a[i];
            a1[i]=temp1*temp1*temp1;

        }
        for (int i = 0; i < s1.length(); i++){
            temp2=temp2+a1[i];
            if(i==s1.length()-1){
                if(x==temp2){
                    System.out.println("Amstrong num");
                }else{
                    System.out.println("Not !");
                }
            }
        }


    }

}

//This is my program to check whether the number is armstrong or not!!

package myprogram2;
public class Myprogram2 {

    public static void main(String[] args) 
    {
        String No="407";
        int length_no=No.length();
        char[] S=new char[length_no];
        int[] b = new int[length_no];
        int arm=0;
        for(int i=0;i<length_no;i++)
        {
           S[i]=No.charAt(i);
           b[i]=Character.getNumericValue(S[i]);
           //System.out.print(b[i]);
           arm=arm + (b[i]*b[i]*b[i]);
           System.out.println(arm);
        }
        //System.out.println(" is the number \n now Checking for its Armstrong condition");
        int orgno = Integer.parseInt(No);
        if (orgno==arm)
            System.out.println("YESm its an armstrong");
        else
            System.out.println("\n<<Not an armstrong>>");
            //System.out.println(length_no);
        System.out.println("Original number is  "+orgno);
        System.out.println("Sum of cubes  "+arm);
    }

}

There are a couple of nice String -based solutions and numeric solutions with single-letter variable names.

Consider this to make sense of how it works numerically , which includes a couple of interesting numeric tricks:

import java.io.*;

public class Armstrong
{
  public static void main(String args[]) throws IOException
  {
    InputStreamReader read = new InputStreamReader(System.in);
    BufferedReader    in   = new BufferedReader(read);
    int modifiedNumber, originalNumber, modifiedNumberWithUnitsDigitZero, 
        unitsDigit, runningSum; 

    System.out.println("Enter your number:");
    modifiedNumber = Integer.parseInt(in.readLine()); 

    runningSum = 0;
    originalNumber = modifiedNumber;

    while(modifiedNumber > 0)
    {
      modifiedNumberWithUnitsDigitZero = modifiedNumber / 10 * 10;
      unitsDigit     = modifiedNumber - modifiedNumberWithUnitsDigitZero;
      runningSum    += unitsDigit * unitsDigit * unitsDigit;
      modifiedNumber = modifiedNumber / 10;
    }

    System.out.println("The number " + originalNumber 
      + (originalNumber == runningSum ? " IS" : " is NOT") 
      + " an Armstrong number because sum of cubes of digits is " + runningSum);
  }
}

This is the simple logic for Armstrong number program :

for (int i = number; i > 0; i = i / 10)
{
    remainder = i % 10;
    sum = sum + remainder * remainder * remainder;
}

if(sum == number)
{
    System.out.println("\n" + number + " is an Armstrong Number\n");
}

Reference :

http://topjavatutorial.com/java/java-programs/java-program-to-check-if-a-number-is-armstrong-number/

import java.util.Scanner;

public class Amst {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter The No. To Find ArmStrong Check");
        int i = sc.nextInt();
        int sum = 0;
        for(int j = i; j>0 ; j = j/10){
            sum = sum + ((j%10)*(j%10)*(j%10));
        }
        if(sum == i)
            System.out.println("Armstrong");
        else
            System.out.println("Not Armstrong");

    }
}
import java.util.*; 
public class ArmstrongNumber 
{
    public static void main( String[] args ) 
    {
        int n = 0, temp = 0, r = 0, s = 0;
        Scanner in = new Scanner(System.in);
        System.out.println("Enter a number ");
        if (in.hasNextInt()) {
            n = in.nextInt(); // if there is another number  
        } else {
            n = 0;
        }
        temp = n;
        while (n != 0) {
            r = n % 10;
            s = s + (r * r * r);
            n = n / 10;
        }

        if (temp == s) {
            System.out.println(temp + " is an Armstrong Number");
        } else {
            System.out.println(temp + " is not an Armstrong Number");
        }
    }
 }
  1. You missed to import java.util package

  2. Change n to temp in SOP

For 'N' digit amstrong number

package jjtest;

public class Amstrong {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int num=54748;
        int c=0;
        int temp=num;

        int b=1;
        int length = (int)(Math.log10(num)+1);
        while(num>0){   
            int r = num%10;
            num=num/10;
            int a =1;
            for(int i=1;i<=length;++i){
                 b=b*r;
        }
            c = c + b;
            b=1;
    }
        System.out.println(c);
        if(c==temp){
            System.out.println("its an amstrong number");
        }else{
            System.out.println("its not an amstrong number");
        }
    }
}

Well, try this code to check if a number is armstrong number using java,

import java.util.Scanner;

public class ArmstrongNumber
{
   public static void main(String[] args)
   {
      int x;
      int y;
      int z = 0;
      int temp;

      Scanner sc = new Scanner(System.in);
      System.out.println("Please enter a number to find if it is an Armstrong number: ");
      x = sc.nextInt();

      temp = x;
      while(x > 0)
      {
         y = x % 10;
         x = x / 10;
         z = z + (y * y * y);
      }

      if(temp == z)
      {
         System.out.println(temp + " is an Armstrong Number.");
      }
      else
      {
         System.out.println(temp + " is not an Armstrong Number.");
      }
   }
}
private static boolean isArmstrong(int num) {
    int totalSum = 0;
    int copyNum = num;

    while (num != 0) {
        int reminder = num % 10;
        int cubeOfReminder = reminder * reminder * reminder;
        totalSum = totalSum + cubeOfReminder;
        num = num / 10;
    }

    if (copyNum == totalSum)
        return true;

    return false;
}
public class Testamstrong 
{
    public static void main(String...strings) {
        int num = 153,temp;
        temp = num;
        if(temp == amstrongNumber(num)) {
            System.out.println("Number is amstrong number...");
        }
        else {
            System.out.println("Number is not amstrong number...");
        }
    }
    public static int amstrongNumber(int num) {
        int count=0,sum=0;
        count = String.valueOf(num).length();
        char[] ch = String.valueOf(num).toCharArray();
        for(char ch1:ch) {
            int num1 = Character.getNumericValue(ch1);
            sum += Math.pow(num1, count);
        }
        return sum;
    }
}

Find Armstrong number using for loops (with example)

import java.util.*;
    public class ArmstorngNumber {
        public static void main(String args[]) {

                int cube, num, quo, n;
                int s = 0;
                do
                    {
                        System.out.println("Enter Your Number");
                        Scanner sc = new Scanner(System.in);
                        num = sc.nextInt();//153
                        n = num;
                        for (int i = 0; i < 10; i++) {
                            int rem = num % 10;//3
                            quo = num / 10; //15
                            cube = rem * rem * rem;//9
                            s = s + cube;//0+9
                            num = quo;//0
                        }
                        System.out.println(s);
                        System.out.println(n);
                        if (s == n) {
                            System.out.println("The number is Armstrong");
                            System.out.println("-------------------------------------");
                        }
                        else {
                                 System.out.println("The number is not Armstrong");
                                System.out.println("-------------------------------------");
                             }
            }
            while (n > 0);
        }
    }

Check the Armstrong number of any number [java] [Armstrong]

   import java.util.*;
   public class Armstrong {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print("enter any number?");
    int x = sc.nextInt();
    int n=0;
    int number = x;
    int j =x;
    int result = 0 ,remainder;
    while (x!=0) {
        x/=10;
        ++n;
    }
     for(;j>0 ;j=j/10) {
        remainder=j%10;
        result+=Math.pow(remainder, n);
    }
    if (number==result) {
        System.out.print(number +"  is  Armstrong ");
        }
    else
        System.out.print(number +"  is not Armstrong");
   }

 }

here is my code, please check if this works for you!

import java.util.Scanner;
public class Armstromg {
    public static void main(String[] args) { 
        Scanner sc = new Scanner(System.in);
        System.out.print("Please enter the number: ");        
       int num = sc.nextInt(); 
       int length = 0;
       int temp1 = num;
       while(temp1 != 0) { 
          temp1/=10;
          length+=1; 
       }
       int result = 1;
       int temp2 = num; 
       for(int i = 1; i <= length; i++) { 
           temp2 = temp2 % 10;
           result*=Math.pow(temp2,length);
          
       }
       if(result == num) { 
          System.out.print("The number is an armstrong number!");
       } else { 
           System.out.print("The number is not an armstrong number");
       }
    }
}
    package Loops;
    public class ArmStrongNumber {
        public static void main(String[] args) {
            int digit1, digit2, digit3;
            int number = 153;
            int temp = number;
            digit1 = number % 10;
            number = number / 10;
            digit2 = number % 10;
            number = number / 10;
            digit3 = number % 10;
            if ((digit1 * digit1 * digit1) + (digit2 * digit2 * digit2) + (digit3 * digit3 * digit3) == temp) {
                System.out.println(+temp + " Number is Armstrong ");
            } else {
                System.out.println("Number is not Armstrong");
            }
    
        }
    }

//Not limited to 3 digit integers

public static void main(String[] args) 
{
    int num = 54748,a,sum=0;
    int x = num;
    int p =Integer.toString(num).length();
    while (num !=0) 
    {       
        a = num%10;
        num = num/10;
        sum = sum + (int) Math.pow(a, p);   
    }

    if (x==sum) 
        System.out.println("Its an Armstrong number");
    else 
        System.out.println("Not an Armstrong number");
    }

}

        Scanner input = new Scanner (System.in);
        int num  , counter = 0 ,temp;
        System.out.print("Enter Nmber :");
        num = input.nextInt();
        int lnum = num;
        while ( num != 0 ){
             num = num/10 ;
             counter++; 
              
             
        } 
         
         int store_num_keyboard_input = lnum;
         int new_tot = 0;
         int c = counter; 
            
          while(lnum > 0){
                temp = lnum % 10;
                lnum = lnum / 10 ;
               
            
               int m = 0;  //m is counter 
             
               int tot = 1;
               while (m != c){
                tot = tot * temp;  
               m++;
               }
              
               new_tot = new_tot + tot; 
           }
           System.out.println("new total "+ new_tot );
           if(new_tot == store_num_keyboard_input){
                   System.out.println(store_num_keyboard_input + " is an Armstrong number"   );
           }
                   else{
                   System.out.println(store_num_keyboard_input + " is not an Armstrong number"  );
           }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM