@Override
	public void run() {
		long answer = 0;

		long[] pentagonalNumbers = new long[5000];
		for(long i = 1; i <= 5000L; i++) {
			pentagonalNumbers[(int) (i - 1)] = (long) (1.5 * Math.pow(i, 2) - 0.5 * i);
		}

		boolean found = false;
		int counter = 0;
		while(!found && counter < 5000) {
			for(int j = 0; j < pentagonalNumbers.length; j++) {
				if(found)
					break;
				for(int k = j; k < pentagonalNumbers.length; k++) {
					long add = pentagonalNumbers[j] + pentagonalNumbers[k];
					long subtract = pentagonalNumbers[k] - pentagonalNumbers[j];
					if(isPentagonalNumber(pentagonalNumbers, add)) {
						if(isPentagonalNumber(pentagonalNumbers, subtract)) {
							answer = subtract;
							found = true;
							break;
						}
					}
				}
			}
			counter++;
		}
		setAnswer(String.valueOf(answer));
	}