@Override
    public Long solve() {

        final long[] primes = toLongArray(primes(200000));

        final Set<Long> squbes = new TreeSet<Long>();
        
        for (long p : primes) {
            
            long sqube;
            
            if (String.valueOf(sqube = 2 * 2 * p * p * p).contains("200")) squbes.add(sqube);
            if (String.valueOf(sqube = 5 * 5 * p * p * p).contains("200")) squbes.add(sqube);
            if (String.valueOf(sqube = 2 * 2 * 2 * p * p).contains("200")) squbes.add(sqube);
            if (String.valueOf(sqube = 5 * 5 * 5 * p * p).contains("200")) squbes.add(sqube);
        }

        int count = 0;
        
        for (long sqube : squbes) {
            if (isPrimeProof(sqube) && ++count == 200) return sqube;
        }
        
        return null;
    }