import java.util.Arrays; import java.util.HashMap; import java.util.Map; public class TestVampireNumber { public static void main(String[] args) { StringBuilder sb=new StringBuilder(); for(int i=1;i<10;i++){ for(int j=0;j<10;j++){ sb.append((i*10+j)+" "); } } String str[]=sb.toString().split(" "); Map<Integer,String> map=new HashMap<>(); for(int i=0;i<str.length;i++){ for(int j=0;j<str.length;j++){ int a=Integer.parseInt(str[i]); int b=Integer.parseInt(str[j]); int c=a*b; String[] str1=String.valueOf(c).split(""); Arrays.sort(str1); String[] str2=(String.valueOf(a)+String.valueOf(b)).split(""); Arrays.sort(str2); boolean bo=Arrays.equals(str1, str2); if(c>1000&&c<10000&&c%100!=0&&bo){ map.put(c, a+"*"+b); } } } for(Integer c:map.keySet()){ System.out.println(c+"="+map.get(c)); } System.out.println(map.size()); } }