public long findAnswer() {
		long answer = 0;
		BitSetOddSkippingSievePG primes = new BitSetOddSkippingSievePG(10000);
		ArrayList<Integer> newPrimeList;
		newPrimeList = getPrimes(primes);

		for (int prime1 : newPrimeList) {
			for (int prime2 : newPrimeList) {
				if (prime2 > prime1) {
					int delta = prime2 - prime1;
					int prime3 = prime2 + delta;
					if (prime3 < 10000) {
						if (primes.isPrime(prime3)) {
							char[] primechars1 = Integer.toString(prime1)
									.toCharArray();
							Arrays.sort(primechars1);

							char[] primechars2 = Integer.toString(prime2)
									.toCharArray();
							Arrays.sort(primechars2);

							char[] primechars3 = Integer.toString(prime3)
									.toCharArray();
							Arrays.sort(primechars3);

							if (Arrays.equals(primechars1, primechars2)
									&& Arrays.equals(primechars2, primechars3)) {
								// Discount the given answer
								if (prime1 != 1487) {
									answer = prime1;
									answer *= 10000;
									answer += prime2;
									answer *= 10000;
									answer += prime3;
								}
							}
						}
					}
				}
			}
		}
		return answer;
	}