Project Euler #34: Digit factorials

  • + 0 comments

    import java.io.; import java.util.; import java.text.; import java.math.; import java.util.regex.*;

    public class Solution { public static int factorial(int x){ if(x==0 || x==1){ return 1; } else{ return x*factorial(x-1); }

    }
    public static int isIfCurious(int z){
        int sum = 0;
        int len = (int) Math.log10(z) + 1;
        for(int i=1;i<=len;i++){
            int k = z%10;
            sum = sum + factorial(k);
            z = z/10;
        }
        return sum;
    }
    
    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int sum = 0;
        for(int i=n;i>=10;i--){
            int t = isIfCurious(i);
            if(t%i == 0){
                sum = sum + i;
              //  System.out.println(i);
            }
        }
        System.out.println(sum);
    }
    

    }