public static void fillBox(int size) {
		box = new long[size + 1];
		long limit, area = 1L << 25L, limit2;
		for (int i = 1; i < box.length; i++) {
			area = 1L << 25L;
			limit = (long) Math.ceil(Math.sqrt(i));
			for (int j = 1; j <= limit; j++)
				if (i % j == 0) {
					limit2 = i / j;
					for (int k = 1; k <= limit2; k++)
						if ((j * k * (i / (j * k))) == i)
							area = Math.min(area, area(j, k, i / (j * k)));
				}
			box[i] = area;
		}
	}