import java.io.*; import java.util.*; public class ruins_yuizumi { public static void main(String[] args) { Scanner cin = new Scanner(System.in); while(doCase(cin)) ; } private static boolean doCase(Scanner cin) { int a = cin.nextInt(); int b = cin.nextInt(); if(a == 0 && b == 0) return false; ArrayList aFactors = enumFactors(a); ArrayList bFactors = enumFactors(b); int[] s = new int[4]; int m = Integer.MAX_VALUE; for(int aFactor : aFactors) { for(int bFactor : bFactors) { s[0] = aFactor; s[1] = a / aFactor; s[2] = bFactor; s[3] = b / bFactor; Arrays.sort(s); int n = 0; for(int i = 1; i < 4; i++) { n += (s[i] - s[i-1]) * (s[i] - s[i-1]); } m = Math.min(m, n); } } System.out.println(m); return true; } private static ArrayList enumFactors(int n) { ArrayList factors = new ArrayList(); for(int i = 1; i * i <= n; i++) { if(n % i == 0) factors.add(i); } return factors; } }