public static void Run() { int target = 500; Timer.RecordMiliseconds(() => { Stopwatch watch = Stopwatch.StartNew(); var generator = new TriangularNumberGenerator(); int number; int divisorCount; do { number = generator.Next(); divisorCount = NumberOfDivisors(number); } while (divisorCount <= target); Console.WriteLine("{0} is the first triangle number to have over {1} divisors", number, target); }); }