fork download
  1. using System;
  2.  
  3. public class Test
  4. {
  5. public static void Main()
  6. {
  7. Calc();
  8. }
  9.  
  10. //Warning: Stupid looking code!
  11. static void Calc() {//puzzling.stackexchange.com/questions/27640
  12. int count = 0;
  13. int modCount = 0;
  14. int A,B,C,D,E,F,G,H;
  15. for (int AXC = 100; AXC <= 999; AXC++) {
  16. for (int FX8XX = 10800; FX8XX <= 90809; FX8XX++) {
  17. if (FX8XX / 10 % 1000 != 80) continue;
  18. int XXBDXXXX = AXC * FX8XX;
  19. if (XXBDXXXX < 10000000) continue;
  20. if (XXBDXXXX > 99999999) break;
  21. F = FX8XX / 10000;
  22. int XXJ = F * AXC;
  23. if (XXJ < 100 || XXJ > 999) continue;
  24. int GX = XXBDXXXX / 10000 - XXJ;
  25. if (GX < 10 || GX > 99) continue;
  26. int GXXX = GX * 100 + XXBDXXXX / 100 % 100;
  27. int XXH = 8 * AXC;
  28. if (XXH < 100 || XXH > 999) continue;
  29. int XX = GXXX - XXH;
  30. if (XX < 10 || XX > 99) continue;
  31. int XXXX = XX * 100 + XXBDXXXX % 100;
  32. int XXXE = FX8XX % 10 * AXC;
  33. if (XXXE < 1000 || XXXE > 9999) continue;
  34. A = AXC / 100;
  35. B = XXBDXXXX / 100000 % 10;
  36. C = AXC % 10;
  37. D = XXBDXXXX / 1000 % 10;
  38. E = XXXE % 10;
  39. G = GX / 10;
  40. H = XXH % 10;
  41. if (XXXX == XXXE) {
  42. modCount++;
  43. Console.WriteLine("{0} * {1} = {2} {3}",
  44. AXC, FX8XX, XXBDXXXX, new {A,B,C,D,E,F,G,H});
  45. Console.WriteLine("XXJ " + XXJ);
  46. Console.WriteLine("GXXX " + GXXX);
  47. Console.WriteLine("XXH " + XXH);
  48. Console.WriteLine("XXXX " + XXXX);
  49. Console.WriteLine("XXXE " + XXXE);
  50. }
  51. count++;
  52. }
  53. }
  54. Console.WriteLine("count = " + count);
  55. Console.WriteLine("modCount = " + modCount);
  56. }
  57.  
  58. }
Success #stdin #stdout 2.59s 23960KB
stdin
Standard input is empty
stdout
124 * 80809 = 10020316 { A = 1, B = 0, C = 4, D = 0, E = 6, F = 8, G = 1, H = 2 }
XXJ 992
GXXX 1003
XXH 992
XXXX 1116
XXXE 1116
count = 1
modCount = 1