Sunday, January 30, 2022

Smith Number Checking Using BlueJ

 Write a program in Java to enter a number and check whether it is a Smith number or not.
Sample Input: 666
Sum of the digits: 6 + 6 + 6 = 18
Prime factors are: 2, 3, 3, 37
Sum of the digits of the prime factors: 2 + 3 + 3 + (3 + 7) = 18
Thus, 666 is a Smith Number. 

import java.util.*;
class A
{
     Scanner sc=new Scanner(System.in);
     int n,n1,digitSum, factorSum,i;     
     void show()
     {
digitSum=0;
factorSum=0;
System.out.print("\nEnter Number: ");
n=sc.nextInt();
for(i=n;i>0;i=i/10)
{
    n1=i%10;
digitSum=digitSum+n1;
}
for(i=2;i<=n;i++)
{
   
 if(isPrime(i) && n%i==0 && i<10)
 {
 factorSum=factorSum+i;
 
 n=n/i;
 i--;
 
}
 else if(isPrime(i) && n%i==0)
 {
     factorSum=factorSum+digits(i);
     n=n/i;
 i--;
}
}
   
if(digitSum==factorSum)
System.out.print("\nSmith Number...");
else
System.out.print("\nNot a Smith Number...");
}
private int digits(int n)
{
    int i,s=0;
    for(i=n;i>0;i=i/10)
    s=s+i%10;
 
    return s;
}
private boolean isPrime(int n)
{
     int i;
     for(i=2;i<n;i++)
     {
          if(n%i==0)
          break;
        }
        if(i==n)
        return true;
        else
        return false;
    }
}
  
Other Programs On Numbers: CLICK HERE

No comments:

Post a Comment

Subscribe via email

Enter your email address:

Delivered by FeedBurner