Project Euler/java/P44.java
class P44 {
	public static void main(String... args) {
		new P44();
	}

	public P44() {
		int a, b;
		for (int i = 1; i < 10000; ++i) {
			a = i * (3 * i - 1) / 2;
			for (int j = i + 1; j < 10000; ++j) {
				b = j * (3 * j - 1) / 2;
				if (esPentagonal(b - a) && esPentagonal(b + a)) {
					System.out.println(a + " y " + b + "\t" + (b - a));
				}
			}
		}
	}

	// n=(sqrt(24*x+1)+1)/6
	private boolean esPentagonal(int x) {
		return (Math.sqrt(24 * x + 1) + 1) % 6 == 0;
	}
}

/*
 * Pentagonal numbers are generated by the formula, Pn=n(3n−1)/2. The first ten
 * pentagonal numbers are:
 * 
 * 1, 5, 12, 22, 35, 51, 70, 92, 117, 145, ...
 * 
 * It can be seen that P4 + P7 = 22 + 70 = 92 = P8. However, their difference,
 * 70 − 22 = 48, is not pentagonal.
 * 
 * Find the pair of pentagonal numbers, Pj and Pk, for which their sum and
 * difference is pentagonal and D = |Pk − Pj| is minimised; what is the value of
 * D?
 */