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.
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