public void Solve() {
        List<Long> primes = Euler.GetLongPrimesList(_maxPrime);

        ArrayList<Integer> searchList = new ArrayList<Integer>();
        Iterator<Long> iterator = primes.iterator();
        long currentPrime = iterator.next();
        while (currentPrime < _maxSearch) {
            searchList.add((int) currentPrime);
            currentPrime = iterator.next();
        }


        List<List<Integer>> result = Bucketize(searchList, primes, _primeSet - 1);

        long sum = Long.MAX_VALUE;
        for (Iterator<List<Integer>> it = result.iterator(); it.hasNext();) {
            List<Integer> list = it.next();

            if (list.size() < _primeSet) {
                continue;
            }

            long partialSum = 0;
            for (int i = 0; i < _primeSet; i++) {
                int integer = list.get(i);
                partialSum += integer;

                System.out.print(integer);
                System.out.print(", ");
            }

            System.out.print("Sum= " + partialSum);
            if (partialSum < sum) {
                sum = partialSum;
                System.out.print(" <--winner");
            }
            System.out.println();
        }
    }