public int solve() {
		myDivisors = findDivisors();
		int result = 0;
		for (Integer divisor: myDivisors) {
			boolean success = true;
			result = divisor;
			if (divisor == mySum)
				return divisor; // the sum is always possible (no partition)
			int sum = 0;
			for (int i = 0; i < myData.length; i++) {
				sum += myData[i];
				if (sum > divisor) { // fail
					success = false;
					break;
				}
				else if (sum == divisor)
					sum = 0;
			}
			if (success)
				break;
		}
		return result;
	}