The following code is to accept any number and check whether it's an Armstrong / Palindrome / Perfect number, depending on the user's choice.
Code:-
import java.util.*;
public class Number{
Scanner scan=new Scanner(System.in);
int num,choice=0,i,r,s=0,n;
public void input()throws IOException{
try{
System.out.println("Enter any number: ");
num=scan.nextInt();
System.out.println("1 to check "+num+" is Armstrong.\n2 to check "+num+" is Palindrome.\n3 to check "+num+" is Perfect.\nEnter Your Choice: ");
choice=scan.nextInt();
}
catch(Exception e){
System.out.println("Error: "+e);
System.exit(0);
}
}
public void compute(){
System.out.println("Your choice: "+choice);
System.out.println("Processing.");
System.out.println("Processing of "+num+" for ");
if(choice==1)
System.out.print("Armstrong has completed.\n");
else if(choice==2)
System.out.print("Palindrome has completed.\n");
else
System.out.print("Perfect has completed.\n");
switch(choice){
case 1:
armstrong(num); break;
case 2:
palindrome(num); break;
case 3:
perfect(num); break;
default:
System.out.println("Your Choice: "+choice+" is invalid.");
}
}
public void armstrong(int num){
int d;
n=num;
while(num>0){
d=num%10;
s=s+(d*d*d);
num/=10;
if(num==0){
System.out.println("Before: "+n);
System.out.println("After: "+s);
break;
}
}
if(s==n)
System.out.println("Armstrong.");
else
System.out.println("No.");
}
public void palindrome(int num){
n=num;
while(num>0){
r=num%10;
s=s*10+r;
num/=10;
if(num==0){
System.out.println("Before: "+n);
System.out.println("After: "+s);
break;
}
}
if(s==n)
System.out.println("Palindrome.");
else
System.out.println("No.");
}
public void perfect(int num){
int tmp=num,sum=0;
for(i=1;i<num;i++){
if(num%i==0){
sum+=i;
System.out.println("Factor of "+num+" is: "+i);
}
}
System.out.println("Sum of the factors of "+num+" is: "+sum);
if(sum==num)
System.out.println("Number "+tmp+" is Perfect.");
else
System.out.println("Number "+tmp+" is not Perfect.");
}
public static void main(String[] args)throws IOException{
Number obj=new Number();
obj.input();
obj.compute();
}
}
Output:-
Enter any number:
153
1 to check 153 is Armstrong.
2 to check 153 is Palindrome.
3 to check 153 is Perfect.
Enter Your Choice:
1
Your choice: 1
Processing.
Processing of 153 for
Armstrong has completed.
Before: 153
After: 153
Armstrong.
Code:-
import java.util.*;
public class Number{
Scanner scan=new Scanner(System.in);
int num,choice=0,i,r,s=0,n;
public void input()throws IOException{
try{
System.out.println("Enter any number: ");
num=scan.nextInt();
System.out.println("1 to check "+num+" is Armstrong.\n2 to check "+num+" is Palindrome.\n3 to check "+num+" is Perfect.\nEnter Your Choice: ");
choice=scan.nextInt();
}
catch(Exception e){
System.out.println("Error: "+e);
System.exit(0);
}
}
public void compute(){
System.out.println("Your choice: "+choice);
System.out.println("Processing.");
System.out.println("Processing of "+num+" for ");
if(choice==1)
System.out.print("Armstrong has completed.\n");
else if(choice==2)
System.out.print("Palindrome has completed.\n");
else
System.out.print("Perfect has completed.\n");
switch(choice){
case 1:
armstrong(num); break;
case 2:
palindrome(num); break;
case 3:
perfect(num); break;
default:
System.out.println("Your Choice: "+choice+" is invalid.");
}
}
public void armstrong(int num){
int d;
n=num;
while(num>0){
d=num%10;
s=s+(d*d*d);
num/=10;
if(num==0){
System.out.println("Before: "+n);
System.out.println("After: "+s);
break;
}
}
if(s==n)
System.out.println("Armstrong.");
else
System.out.println("No.");
}
public void palindrome(int num){
n=num;
while(num>0){
r=num%10;
s=s*10+r;
num/=10;
if(num==0){
System.out.println("Before: "+n);
System.out.println("After: "+s);
break;
}
}
if(s==n)
System.out.println("Palindrome.");
else
System.out.println("No.");
}
public void perfect(int num){
int tmp=num,sum=0;
for(i=1;i<num;i++){
if(num%i==0){
sum+=i;
System.out.println("Factor of "+num+" is: "+i);
}
}
System.out.println("Sum of the factors of "+num+" is: "+sum);
if(sum==num)
System.out.println("Number "+tmp+" is Perfect.");
else
System.out.println("Number "+tmp+" is not Perfect.");
}
public static void main(String[] args)throws IOException{
Number obj=new Number();
obj.input();
obj.compute();
}
}
Output:-
Enter any number:
153
1 to check 153 is Armstrong.
2 to check 153 is Palindrome.
3 to check 153 is Perfect.
Enter Your Choice:
1
Your choice: 1
Processing.
Processing of 153 for
Armstrong has completed.
Before: 153
After: 153
Armstrong.
Comments