public static boolean findSolution(int size) {
		
		for (int suffixSize = 0; suffixSize <= (size - REQ_SUB_NUMBER_SIZE); suffixSize++) {
			int prefixSize = size - 4 - suffixSize;
			
			for (int i = getMinWith(prefixSize); i <= getMaxWith(prefixSize); i++) {
				if ( prefixSize != 0 &&  i == 0 ) {
					continue;
				}
				for (int 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;
					}
					boolean isJoint = isJointSquare(n);					
					if (isJoint) {
						System.out.print("***********************************");
						System.out.println("n : " + n + ", prefixSize:" + prefixSize +", suffixSize: " + suffixSize + ", isJointSquare: " + isJoint);
						
					}
				}
			}

		}
		return false;
	}