//ISC 2008, Q1 E.g. 666, 4937775
public class SmithNumber
{   public static void main(String args[])
    {   int n=666;
        int sumN=sumDigits(n);
        int sumF=0;
        int f=2;
        System.out.println("Prime factors for "+n+" :");
        while(n>1)
        {   while(n%f==0)
                {   sumF=sumF+sumDigits(f);
                    System.out.print(f+" ");
                    n/=f;
                }//while n%f
            f++;
        }//while n>0
        System.out.println();
        if(sumN==sumF)
        {   System.out.println("Smith number");
        }
        else
        {   System.out.println("Not Smith number");
        }
    }//main
    
    private static int sumDigits(int n)
    {   int s=0;
        while(n>0)
        {   s+=n%10;
            n/=10;
        }
        return s;
    }//sumDigits        
}//class

