public class Vampire { static int f1; static int f2; public static boolean isVampire4Dig(int n) { String s = Integer.toString(n); String t, t2; char[] digits = s.toCharArray(); int[][] perm = {{0,1,2,3},{0,1,3,2},{0,2,1,3},{0,2,3,1}, {0,3,1,2},{0,3,2,1},{1,0,2,3},{1,0,3,2},{1,2,3,0}, {1,3,2,0},{2,0,3,1},{2,1,3,0}}; for(int[] p : perm) { if(!(digits[p[1]] == '0' && digits[p[3]] == '0')) { t = new String(digits, p[0], 1) + new String(digits, p[1],1); t2 = new String(digits, p[2], 1) + new String(digits, p[3],1); f1 = Integer.parseInt(t); f2 = Integer.parseInt(t2); if(f1 * f2 == n) return true; } } return false; } public static void main(String[] args) { for(int i=1000;i<=9999;i++) if(isVampire4Dig(i)) System.out.println(i + " is a vampire number. " + "Fangs: " + f1 + ", " + f2); } }