fork download
  1. import java.util.*;
  2.  
  3. class Main {
  4. public static void main(String[] args) {
  5. int total=0;
  6.  
  7. LinkedList<Integer> remDigits=new LinkedList<Integer>();
  8. for(int n=1;n<=9;n++)
  9. remDigits.add(new Integer(n));
  10.  
  11. for(int n9=2;n9<9;n9++){ //starting digit can't be 1 or 2
  12. int thouC=(remDigits.get(n9)).intValue();
  13. remDigits.remove(n9);
  14. for(int n8=0;n8<8;n8++){
  15. int hundC=(remDigits.get(n8)).intValue();
  16. remDigits.remove(n8);
  17. for(int n7=0;n7<7;n7++){
  18. int tenC=(remDigits.get(n7)).intValue();
  19. remDigits.remove(n7);
  20. for(int n6=0;n6<6;n6++){
  21. int oneC=(remDigits.get(n6)).intValue();
  22. remDigits.remove(n6);
  23.  
  24. int c=1000*thouC+100*hundC+10*tenC+oneC;
  25. boolean found=false;
  26. int n5=0;
  27. while((n5<5)&&(found==false)){
  28. int ab1=(remDigits.get(n5)).intValue();
  29. remDigits.remove(n5);
  30. int n4=0;
  31. while((n4<4)&&(found==false)){
  32. int ab2=(remDigits.get(n4)).intValue();
  33. remDigits.remove(n4);
  34. int n3=0;
  35. while((n3<3)&&(found==false)){
  36. int ab3=(remDigits.get(n3)).intValue();
  37. remDigits.remove(n3);
  38. int n2=0;
  39. while((n2<2)&&(found==false)){
  40. int ab4=(remDigits.get(n2)).intValue();
  41. remDigits.remove(n2);
  42. int ab5=(remDigits.get(0)).intValue();
  43.  
  44. int a3=100*ab1+10*ab2+ab3;
  45. int a4=1000*ab1+100*ab2+10*ab3+ab4;
  46. int b2=10*ab4+ab5;
  47. int b1=ab5;
  48.  
  49. if((a3*b2)==c){
  50. found=true;
  51. total+=c;
  52. System.out.println(c+" = "+a3+"x"+b2);
  53. }
  54. else if((a4*b1)==c){
  55. found=true;
  56. total+=c;
  57. System.out.println(c+" = "+a4+"x"+b1);
  58. }
  59.  
  60. remDigits.add(n2,new Integer(ab4));
  61. n2++;
  62. }
  63. remDigits.add(n3,new Integer(ab3));
  64. n3++;
  65. }
  66. remDigits.add(n4,new Integer(ab2));
  67. n4++;
  68. }
  69. remDigits.add(n5,new Integer(ab1));
  70. n5++;
  71. }
  72.  
  73. remDigits.add(n6,new Integer(oneC));
  74. }
  75. remDigits.add(n7,new Integer(tenC));
  76. }
  77. remDigits.add(n8,new Integer(hundC));
  78. }
  79. remDigits.add(n9,new Integer(thouC));
  80. }
  81. System.out.println(total);
  82. }
  83. }
Success #stdin #stdout 0.08s 246272KB
stdin
Standard input is empty
stdout
4396 = 157x28
5346 = 198x27
5796 = 138x42
6952 = 1738x4
7254 = 186x39
7632 = 159x48
7852 = 1963x4
45228