@@ -0,0 +1,1008 @@
+import java.math.BigInteger;%0Aimport java.util.HashMap;%0Aimport java.util.Map;%0Aimport java.util.stream.Collectors;%0Aimport java.util.stream.IntStream;%0Aimport java.util.stream.Stream;%0A%0A@SuppressWarnings(%22unused%22)%0Apublic class P063 implements Puzzle %7B%0A    @Override%0A    public String solve() %7B%0A        return %22%22 + IntStream.range(1, 50)%0A                .parallel()%0A                .map(i -%3E count(i))%0A                .sum();%0A    %7D%0A%0A    private static int count(int exponent) %7B%0A        int count = 0;%0A%0A        final BigInteger min = BigInteger.TEN.pow(exponent - 1);%0A        final BigInteger max = BigInteger.TEN.pow(exponent);%0A%0A        for (BigInteger base = BigInteger.ZERO; ; base = base.add(BigInteger.ONE)) %7B%0A            BigInteger result = base.pow(exponent);%0A            if (result.compareTo(min) %3E= 0) %7B%0A                if (result.compareTo(max) %3C 0) %7B%0A                    ++count;%0A                %7D else %7B%0A                    break;%0A                %7D%0A            %7D%0A        %7D%0A        return count;%0A    %7D%0A%0A%7D

add 63