Program.cs 946 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System.Diagnostics;
  2. using Day8;
  3. if (args.Any(a => a == "--debug"))
  4. {
  5. Console.WriteLine("DEBUG");
  6. Console.WriteLine(Debugger.Launch());
  7. }
  8. if (args.Length < 1)
  9. {
  10. Console.WriteLine("Requires 1 args: inputFileName");
  11. return -1;
  12. }
  13. var inputFile = args[0];
  14. var parser = new Parser();
  15. var mapData = parser.Parse(inputFile);
  16. var steps = mapData.Walk();
  17. Console.WriteLine();
  18. Console.WriteLine($"Steps: {steps}");
  19. Console.WriteLine();
  20. var cycles = mapData.MultiWalk();
  21. Console.WriteLine();
  22. var factors = new HashSet<long>();
  23. foreach (var cycle in cycles)
  24. {
  25. var cycleFactors = Primes.Factorize(cycle).ToList();
  26. Console.WriteLine($"{cycle} => {string.Join(" * ", cycleFactors)}");
  27. foreach (var f in cycleFactors)
  28. {
  29. factors.Add(f);
  30. }
  31. }
  32. Console.WriteLine($"LCM => {string.Join(" * ", factors)} = {factors.Aggregate(1L, (acc, x) => acc * x)}");
  33. return 0;