import java.util.Scanner;
public class SmithNumber {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a number: ");
int num = sc.nextInt();
sc.close();
int sumOfDigits = getSumOfDigits(num);
int sumOfPrimeFactors = getSumOfPrimeFactors(num);
if (sumOfDigits == sumOfPrimeFactors) {
System.out.println(num + " is a Smith number.");
} else {
System.out.println(num + " is not a Smith number.");
}
}
// Method to get the sum of digits of a number
private static int getSumOfDigits(int num) {
int sum = 0;
while (num > 0) {
sum += num % 10;
num /= 10;
}
return sum;
}
// Method to get the sum of prime factors of a number
private static int getSumOfPrimeFactors(int num) {
int sum = 0;
for (int i = 2; i <= num; i++) {
while (num % i == 0) {
sum += getSumOfDigits(i);
num /= i;
}
}
return sum;
}
}