public static boolean findSolution(long size) {
		for (long suffixSize = 0; suffixSize <= (size - REQ_SUB_NUMBER_SIZE); suffixSize++) {
			long prefixSize = size - REQ_SUB_NUMBER_SIZE - suffixSize;

			for (long i = getMinForPrefix(prefixSize); i <= getMaxForPrefix(prefixSize); i++) {
				if (prefixSize != 0 && i == 0) {
					continue;
				}
				for (long j = 0; j <= getMaxWith(suffixSize); j++) {
					long n;
					if (prefixSize == 0) {
						n = (long) REQ_SUB_NUMBER * pow(10, suffixSize) + j;
					} else if (suffixSize == 0) {
						n = (long) i * pow(10, 4) + REQ_SUB_NUMBER;
					} else {
						n = (long) i * pow(10, 4 + suffixSize) + REQ_SUB_NUMBER
								* pow(10, suffixSize) + j;
					}
					Pair jointSquarePair = isJointSquare(n);
					if (jointSquarePair != null && jointSquarePair.y != 0) {
						System.out.print("***********************************");
						System.out.println("n : " + n + ", prefixSize:"
								+ prefixSize + ", suffixSize: " + suffixSize
								+ ", x^2 = " + jointSquarePair.x + " y^2 ="
								+ jointSquarePair.y);

					}
				}
			}

		}
		return false;
	}