static void Problem26() { DateTime start = DateTime.Now; int numLongestRecurring = 1; int cycle = 0; for (int i = 1; i < 1000; i++) { int power = 1, lam = 1; int tortoise = 1 / i; int tortoiseRem = (1 % i) * 10; int hare = tortoiseRem / i; int hareRem = (tortoiseRem % i) * 10; while (tortoise != hare || tortoiseRem != hareRem) { if (power == lam) { tortoise = hare; tortoiseRem = hareRem; power *= 2; lam = 0; } hare = hareRem / i; hareRem = (hareRem % i) * 10; lam++; } if (lam > cycle) { cycle = lam; numLongestRecurring = i; } } Console.WriteLine("Number with longest recurring cycle: {0}\nCycle Length: {1}", numLongestRecurring, cycle); Console.WriteLine((DateTime.Now - start).TotalMilliseconds + " ms"); Console.ReadLine(); }