public static Result Collatz(Problem arguments) { long target = arguments.LongNumber; long chainLength = 0; long maxLength = -1; long start = 1; long selected = 0; while (start < target) { chainLength = UtilityMath.CollatzChain(start); if (chainLength > maxLength) { maxLength = chainLength; selected = start; } start++; } var m = string.Format("The longest chain ({0}) produced by a number under {1} is by {2}", maxLength, target, selected); var r = new Result(arguments.Id, m); return(r); }