유적

a, b가 10000 이하로 주어질 때 a=a1*a2, b=b1*b2인 네 수를 정렬해 인접한 수 차이의 제곱합이 최소가 되도록 하는 값을 구한다.

보통7수학정수론완전 탐색정렬아직 제출이 없습니다시간 제한8초메모리 제한512 MB

문제

사막의 유적에서 지하 보물창고로 들어가는 문을 찾았다. 문에는 양의 정수 aabb가 새겨져 있고, 이 두 수가 내는 문제를 풀어야 자물쇠가 열린다.

a=a1×a2a = a_1 \times a_2b=b1×b2b = b_1 \times b_2를 만족하는 양의 정수 a1,a2,b1,b2a_1, a_2, b_1, b_2를 고른다. 네 수는 서로 같아도 된다. 고른 네 수를 오름차순으로 늘어놓아 x1x2x3x4x_1 \le x_2 \le x_3 \le x_4라 할 때, (x2x1)2+(x3x2)2+(x4x3)2(x_2 - x_1)^2 + (x_3 - x_2)^2 + (x_4 - x_3)^2을 계산한다. 가능한 모든 선택 중에서 이 값의 최솟값을 구한다.

예를 들어 a=33a = 33, b=40b = 40이면 33=3×1133 = 3 \times 11, 40=5×840 = 5 \times 8로 나누어 수열 3,5,8,113, 5, 8, 11을 얻는다. 이때 값은 (53)2+(85)2+(118)2=22(5 - 3)^2 + (8 - 5)^2 + (11 - 8)^2 = 22이고, 이보다 작은 값을 주는 선택은 없다.

입력

입력은 여러 개의 데이터 집합으로 이루어진다. 각 줄에 10,000 이하의 양의 정수 두 개가 주어진다. 입력의 끝은 0 두 개가 적힌 줄로 표시하며, 이 줄은 처리하지 않는다.

출력

각 데이터 집합마다 최솟값을 정수 하나로 한 줄에 출력한다. 그 밖의 공백이나 문자는 출력하지 않는다.