public static long maxPandigitalPrime() {
        long maxPandigitalPrime = 0, startPos = 0, digitsSum = 3;
        boolean foundPrime = false;
        //Find the first pandigital not divisible by 3
        for(int i = 9; i > 0 && digitsSum % 3 == 0; i--) {
            digitsSum = 0;
            for(int j = 1; j <= i; j++) {
                digitsSum += j;
            }
            String temp = "";
            if(digitsSum % 3 != 0) {
                for(int k = i; k >= 1; k--) {
                    temp += k;
                }
                startPos = Long.parseLong(temp);
            }
        }
        for (long i = startPos; i > 4231 && !foundPrime; i--) {
            if (isPandigital(i)) {
                if (isPrime(i)) {
                    maxPandigitalPrime = i;
                    foundPrime = true;
                }
            }
        }
        return maxPandigitalPrime;
    }