private static void recurse(long n, int index, int primeCount) {

        long p = primes.get(index);
        if (index == primes.size()-1) {
            if (isAchilles(Euler.phi(n)) && isAchilles(n)) {
                System.out.println(n);
                count++;
            }
            return;
        }
        if ((primeCount == 0 && Math.pow(p, 4) >= limit) || (primeCount == 1 && n*p*p >= limit))
            return;

        recurse(n, index+1, primeCount);
        n*=p;
        while ((n = n*p) < limit) {
            recurse(n, index+1, primeCount+1);
        }
    }