using System.Diagnostics; using Day8; if (args.Any(a => a == "--debug")) { Console.WriteLine("DEBUG"); Console.WriteLine(Debugger.Launch()); } if (args.Length < 1) { Console.WriteLine("Requires 1 args: inputFileName"); return -1; } var inputFile = args[0]; var parser = new Parser(); var mapData = parser.Parse(inputFile); var steps = mapData.Walk(); Console.WriteLine(); Console.WriteLine($"Steps: {steps}"); Console.WriteLine(); var cycles = mapData.MultiWalk(); Console.WriteLine(); var factors = new HashSet(); foreach (var cycle in cycles) { var cycleFactors = Primes.Factorize(cycle).ToList(); Console.WriteLine($"{cycle} => {string.Join(" * ", cycleFactors)}"); foreach (var f in cycleFactors) { factors.Add(f); } } Console.WriteLine($"LCM => {string.Join(" * ", factors)} = {factors.Aggregate(1L, (acc, x) => acc * x)}"); return 0;