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();
}