- import java.util.*;
- class VampireNum
- {
- public static void main(String[] args)
- {
- for (int i=1000; i<10000; i++)
- {
- for (int j=10;j*j<=i ;j++ )
- {
- if(i%100==0)
- continue;
- if((i%j==0)&&(i/j>=10&&i/j<=99))
- {
- int temp=i/j;
- byte[] b1=new Integer(i).toString().getBytes();
- byte[] b2=(new Integer(j).toString()+new Integer(temp).toString()).getBytes();
- Arrays.sort(b1);
- Arrays.sort(b2);
- if(Arrays.equals(b1,b2))
- System.out.println(i+"="+j+"*"+temp);
-
- }
- }
- }
-
- }
- }
复制代码
思路就是遍历所有的四位数,并进行因式分解,当两个因子都为两位数的时候,将该数各位取出存入一个byte数组中,并排序,同时,将两个因子中的各位数字取出并存入另一个byte数组中,并排序,当且仅当这两个byte数组相等时,该数为所求吸血鬼数。 |